2 svar
56 visningar
Aedrha är nöjd med hjälpen
Aedrha 86
Postad: 17 jul 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 466
Postad: 17 jul 19:01 Redigerad: 17 jul 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 86
Postad: 18 jul 05:57

Funkade, tack!

Svara Avbryt
Close