Résumé Cet article explore le principe d'implémentation de Stream et présente comment utiliser le framework open source StreamEx de Java 8 Stream pour répondre à quelques questions fréquemment posées sur Java 8 Stream sur StackOverflow :
Convertir Java 8 List<V>
en Map<K, V>
Utiliser l'API JDK Stream :
Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
Utiliser l'API StreamEx :
Map<String, Choice> result = StreamEx.of(choices).toMap(Choice::getName);
Pool de threads personnalisé dans le flux parallèle Java 8
Utilisez l'API JDK Stream :
ForkJoinPool forkJoinPool = new ForkJoinPool(2); forkJoinPool.submit(() -> //parallel task here, for example IntStream.range(1, 1_000_000).parallel().filter(PrimesPrint::isPrime).collect(toList()) ).get();
Utilisez l'API StreamEx :
IntStreamEx.range(1, 1_000_000).parallel(new ForkJoinPool(2)) .filter(PrimesPrint::isPrime).toList();
Java 8 Distinct par propriété
Utiliser l'API JDK Stream :
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) { Set<Object> seen = ConcurrentHashMap.newKeySet(); return t -> seen.add(keyExtractor.apply(t)); } persons.stream().filter(distinctByKey(Person::getName));
Utiliser l'API StreamEx :
StreamEx.of(persons).distinctBy(Person::getName);
Est-il possible de diffuser un flux dans Java 8 ?
Utilisez l'API JDK Stream :
Stream.of(objects) .filter(Client.class::isInstance) .map(Client.class::cast) .map(Client::getID) .forEach(System.out::println);
Utilisez l'API StreamEx :
StreamEx.of(objects) .select(Client.class) .map(Client::getID) .forEach(System.out::println);
Articles associés :
Exemples simples d'expressions Lambda et de classes Stream en Java
Vidéos associées :
Tutoriel vidéo pratique Javascript de la Maison de Thé Miaowei
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!