SQL-команди для колекцій
Новий спосіб роботи з колекціями
Дозволяє писати коротший і зрозуміліший код
Частину коду можна запускати паралельно parallel()
Перетворити в потік Stream<String> stream = Arrays.stream(arr); List<Integer> x = Arrays.asList(3, 2, 5, 4, 1);
List<Integer> x = Arrays.asList(3, 2, 5, 4, 1); Stream<Integer> s = x.stream(); // перетворити в потік Stream<Integer> s2 = s.filter(a -> a%2 != 0).sorted(); Stream<String> s3 = s2.map(e -> e.toString() + "$"); List<String> list = s3.collect(Collectors.toList()); // перетворити в список list.forEach(a -> System.out.println(a));
1$
3$
5$
3$
5$
max() - найбільший елемент filter() - зробити вибірку skip(2) - відкинути перші 2 limit(2) - обмежитися першими 2 distinct() - пробрати дублікати count() - полічити sorted() - сортувати sorted(Collections.reverseOrder()) - у зворотному порядку sorted(Comparator.comparing(Worker::getAge).reversed()) - по віку, зворотний map(a -> a*a) - змінює кожен елемент mapToInt() - об'єкт в примітив (одне число) mapToInt(a-> a*a).sum() - пододавати добутки mapToDouble() ["a", "b", "c"] s.anyMatch(element -> element.contains("a")) // true s.allMatch(element -> element.contains("a")) // false, [a,a,a] - true s.noneMatch(element -> element.contains("a")) // false, [b,b,b] - true [1,2,3].reduce(5, (a, b) -> a + b) - 5 + 1 + 2 + 3 = 11 з усього, отримати одне
max( Comparator.comparing( a -> a.getMoney() ) )
max( Comparator.comparing( Account::a.getMoney() ) ) // так читабельніше
Своє сортування Comparator<String> reverseComparator = new Comparator<String>() { @Override public int compare(String i1, String i2) { if(i2.length() > i1.length()){ return 1; } else if(i2.length() < i1.length()){ return -1; } else { return 0; } } }; Stream<String> s = list.stream().sorted(reverseComparator);