Я полностью понимаю эту форму:
Set<T> set = new HashSet<>();
list.stream().allMatch(t -> set.add(t));
// And that
list.stream().allMatch(set::add);
Но этот случайный случай меня действительно смущает:
list.stream().allMatch(new HashSet<>()::add);
Самое интересное, что экземпляр hashset создается только один раз.
Основано в этой теме
for(int i: new int[] { 1, 2, 4, 6, 9, 42 }) …
- person Holger   schedule 03.11.2016