Я хочу знать, есть ли в моем List<T>
дубликаты элементов.
Я видел метод ниже:
public static <T> boolean areAllUnique(List<T> list){
return list.stream().allMatch(new HashSet<>()::add);
}
Это работает, и я удивлен, почему? Поскольку кажется, что каждый раз создается новый HashSet <> (поэтому в основном метод должен всегда возвращать true, даже если дубликаты)
Если я пишу по-другому описанный выше метод, он больше не работает:
public static <T> boolean areAllUnique(List<T> list){
return list.stream().allMatch(t -> {
return new HashSet<>().add(t);
});
}
Я удивлен, что 1-й метод работает, а другой - нет. Потому что для меня они выглядят одинаково