Liebes Forum, da bin ich schon wieder mit der nächsten Frage. 
Folgende Aufgabenstellung: Eine Methode excludeTooShort(int laenge, List<String> woerter) schreiben, die alle Wörter verwirft, die kürzer als laenge sind. Gegeben: Eine Liste aus zehn Wörtern (words). Bedingung der Übungsaufgabe: Die Methode muss Datenströme nutzen und eine Ergebnisliste zurückgeben.
Hier der bisherige Code:
Funktioniert soweit, die Konsole gibt [7, 8, 9] aus, das ist die Anzahl der Buchstaben von "Johanna", "Michaela" und "Christian". Ich würde aber gerne die Namen ausgeben, sprich den Stream lengthStream wieder umwandeln. Dachte an Folgendes:
Mein Problem: Wenn ich dann schreibe
Kommt die Meldung: cannot convert from List<String> to List<Integer>. Wenn ich die Methode aber in List <String> excludeTooShort ändere, kommen sehr viele und für mich unverständliche (bin ganz frisch in der Programmierung
) Fehlermeldungen.
Sorry für den langen Text, ich wollte es so verständlich wie möglich formulieren...
Vielen Dank für eure Hilfe und einen schönen Abend!
Folgende Aufgabenstellung: Eine Methode excludeTooShort(int laenge, List<String> woerter) schreiben, die alle Wörter verwirft, die kürzer als laenge sind. Gegeben: Eine Liste aus zehn Wörtern (words). Bedingung der Übungsaufgabe: Die Methode muss Datenströme nutzen und eine Ergebnisliste zurückgeben.
Hier der bisherige Code:
Java:
import java.util.*;
import java.util.stream.*;
public class Streams {
public static List <Integer> excludeTooShort(List<String> woerter, int laenge){
Stream <String> stream = woerter.stream();
Stream <Integer> lengthStream = stream.map((String name)->{
return (int) name.length();
});
Stream <Integer> result = lengthStream.filter((Integer hilfe)-> {
return (hilfe > laenge);
});
return result.collect(Collectors.toList());
}
public static void main(String[] args){
List <String> words = Arrays.asList("Peter", "Freda", "Klaus",
"Johanna", "Michaela", "Simone", "Christian", "Michi", "Lukas", "Daniel" );
System.out.println(excludeTooShort(words, 6));
}
}
Funktioniert soweit, die Konsole gibt [7, 8, 9] aus, das ist die Anzahl der Buchstaben von "Johanna", "Michaela" und "Christian". Ich würde aber gerne die Namen ausgeben, sprich den Stream lengthStream wieder umwandeln. Dachte an Folgendes:
Code:
Stream <String> finalresult = lengthStream.map((Integer hilfe2) ->{
return hilfe2.toString();
});
Mein Problem: Wenn ich dann schreibe
Java:
return finalresult.collect(Collectors.toList());
Sorry für den langen Text, ich wollte es so verständlich wie möglich formulieren...
Vielen Dank für eure Hilfe und einen schönen Abend!