===== Collectors - zaawansowane zbieranie ===== List names = Arrays.asList("Ania", "Bartosz", "Adam", "Ola", "Beata"); // Złączenie stringów String joined = names.stream() .collect(Collectors.joining(", ", "[", "]")); // [Ania, Bartosz, Adam, Ola, Beata] // Grupowanie Map> byLetter = names.stream() .collect(Collectors.groupingBy(s -> s.charAt(0))); // {A=[Ania, Adam], B=[Bartosz, Beata], O=[Ola]} // Partycjonowanie (grupowanie wg predykatu) Map> partition = names.stream() .collect(Collectors.partitioningBy(s -> s.length() > 3)); // Zliczanie per grupa Map countByLetter = names.stream() .collect(Collectors.groupingBy(s -> s.charAt(0), Collectors.counting())); // Do mapy Map nameLengths = names.stream() .collect(Collectors.toMap(s -> s, String::length));