2 svar
91 visningar
Aedrha är nöjd med hjälpen
Aedrha 94
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 1148
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 94
Postad: 18 jul 2022 05:57

Funkade, tack!

Svara Avbryt
Close