2 svar
100 visningar
Aedrha behöver inte mer hjälp
Aedrha 96
Postad: 17 jul 2022 18:33

Strömmar av Double List printar inte!

Hej!
Jag vill använda strömmar för att filtrera bort alla tal utanför intervallet [18.0, 21.0] från en lista av typen List<Double>.
Jag gjorde så här;

import java.util.Arrays;
import java.util.List;

public class nbrsExample {
	public static void main(String[] args) {
	
	List<Double> nbrs = Arrays.asList(16.3, 21.8, 18.1, 22.1, 24.8, 19.0);
	List<Double> nbrs2 = Arrays.asList(21.8, 18.1);
	List<Double> nbrs3 = Arrays.asList(16.3, 15.8, 22.1, 24.8);
	nbrs.stream()
	.filter(d->d.doubleValue()<=18.0 && d.doubleValue()>=22.0)
	.forEach(d->System.out.println(d.toString()));
	
	
	}

}

Jag får inga felmeddelande och koden kan exekveras, men inget händer. Har försökt debugga men det blir komplicerat snabbt med strömmar, förstår inte vad som sker när jag tittar med min debugger.
Om där är någon som ser vad som är fel och kan förklara varför det inte funkar så skulle jag vara väldigt tacksam!


Tack!

CurtJ Online 1190
Postad: 17 jul 2022 19:01 Redigerad: 17 jul 2022 19:02

Resultatet av filtret är det som returneras från anropet av filter(). Siom du har skrivit villkoret så kan det aldrig va sant. Ett värde kan inte samtidigt vara mindre än 18 och större än 22. Vänd på villkoren så borde det fungera 

d.doubleValue() >= 18.0 && d.doubleValue <= 22.0

Aedrha 96
Postad: 18 jul 2022 05:57

Funkade, tack!

Svara
Close