Java
L'utilisez vous!
J'écris souvent quelque chose ces derniers temps, mais je pense que c'est devenu assez pratique depuis l'implémentation de Stream API
.
Des choses typiques comme Stream.forEach
et Stream.filter
sortent en même temps,
Certaines choses que je n'utilise pas souvent ne sortent pas, alors je les garderai pour mémoire.
Stream.generate Crée un Stream infini et non ordonné. Ceci est utile lors de la création de valeurs non pertinentes, telles que la génération de nombres aléatoires.
Document: 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
Avec Predicate <T>
comme paramètre, true est renvoyé s'il y a au moins une valeur qui correspond à la condition.
Document: 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
Avec Predicate <T>
comme paramètre, true est renvoyé si toutes les valeurs correspondent aux conditions.
Document: 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
Avec Predicate <T>
comme paramètre, il renvoie true s'il n'y a aucune valeur qui correspond à la condition.
Document: 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
Avec Predicate <T>
comme paramètre, la valeur est renvoyée tant que les conditions sont remplies.
L'exemple ci-dessous renverra un nombre inférieur à 0.
Document: 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
Avec Predicate <T>
comme paramètre, la valeur est renvoyée tant que les conditions ne sont pas remplies.
Dans l'exemple ci-dessous, les nombres supérieurs ou égaux à 0 seront renvoyés.
Document: 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
C'est très pratique, n'est-ce pas?
Je souhaite l'utiliser activement et viser un code compréhensible intuitivement.
C’est court, mais c’est tout. Merci beaucoup!
Recommended Posts