Twój kod będzie musiał powtórzyć wszystkie elementy. Jeśli chcesz się upewnić, że nie ma duplikatów, prosta metoda, taka jak
public static <T> boolean containsUnique(List<T> list){
Set<T> set = new HashSet<>();
for (T t: list){
if (!set.add(t))
return false;
}
return true;
}
jest bardziej wydajna.
Ta metoda może być również zapisane jako (zakładając nierównoległe strumienie i środowiska gwintu Safe)
public static <T> boolean containsUnique(List<T> list){
Set<T> set = new HashSet<>();
return list.stream().allMatch(t -> set.add(t));
}
lub @Holger wymienione w komentarzu
public static <T> boolean containsUnique(List<T> list){
return list.stream().allMatch(new HashSet<>()::add);
}
Jeśli nie interesuje Cię, co to są duplikaty, to jest to najlepszy sposób !! –