Java
Benutzt du es?
Ich schreibe in letzter Zeit oft etwas, aber ich denke, dass es seit der Implementierung der "Stream API" ziemlich praktisch geworden ist.
Typische Dinge wie "Stream.forEach" und "Stream.filter" kommen sofort heraus,
Einige Dinge, die ich nicht oft benutze, kommen nicht heraus, deshalb werde ich sie als Memorandum aufbewahren.
Stream.generate Erstellt einen ungeordneten, unendlichen Stream. Dies ist nützlich, wenn Sie irrelevante Werte erstellen, z. B. Zufallszahlen.
Dokument: docs
public static void main(String[] args) {
Stream<Double> stream = Stream.generate(() -> Math.random());
stream.limit(5).forEach(System.out::println);
}
0.022804976867977667
0.06422820749702451
0.7240936837411123
0.9070898332933144
0.6724389714182997
Stream.anyMatch
Mit Predicate <T>
als Parameter wird true zurückgegeben, wenn mindestens ein Wert vorhanden ist, der der Bedingung entspricht.
Dokument: docs
public static void main(String[] args) {
List<String> strList = Arrays.asList("dog", "cat", "bird");
boolean match = strList.stream().anyMatch(e -> e.equals("dog"));
System.out.println(match);
}
true
Stream.allMatch
Mit Predicate <T>
als Parameter wird true zurückgegeben, wenn alle Werte den Bedingungen entsprechen.
Dokument: docs
public static void main(String[] args) {
List<String> strList = Arrays.asList("dog", "cat", "bird");
boolean match = strList.stream().allMatch(e -> e.equals("dog"));
System.out.println(match);
}
false
Stream.noneMatch
Mit Predicate <T>
als Parameter wird true zurückgegeben, wenn kein Wert vorhanden ist, der der Bedingung entspricht.
Dokument: docs
public static void main(String[] args) {
List<String> strList = Arrays.asList("dog", "cat", "bird");
boolean match = strList.stream().noneMatch(e -> e.equals("fish"));
System.out.println(match);
}
true
Stream.takeWhile
Mit Predicate <T>
als Parameter wird der Wert zurückgegeben, während die Bedingungen erfüllt sind.
Das folgende Beispiel gibt eine Zahl kleiner als 0 zurück.
Dokument: docs
public static void main(String[] args) {
List<Integer> numList = Arrays.asList(
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
);
numList.stream().takeWhile(x -> x < 0).forEach(System.out::println);
}
-5
-4
-3
-2
-1
Stream.dropWhile
Mit Predicate <T>
als Parameter wird der Wert zurückgegeben, während die Bedingungen nicht erfüllt sind.
Im folgenden Beispiel werden Zahlen größer oder gleich 0 zurückgegeben.
Dokument: docs
public static void main(String[] args) {
List<Integer> numList = Arrays.asList(
-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
);
numList.stream().dropWhile(x -> x < 0).forEach(System.out::println);
}
0
1
2
3
4
5
StreamAPI
Es ist sehr praktisch, nicht wahr?
Ich möchte es aktiv nutzen und einen Code anstreben, der intuitiv verstanden werden kann.
Es ist kurz, aber das war's. Vielen Dank!
Recommended Posts