public static boolean containsDuplicates(int[] array) {
Set<Integer> set = new HashSet<>();
for(int item:array){
if (!set.add(item)) return true;
}
return false;
}
метод указанный мной удалит все буквы abcd efg и т.д. и отсортирует числа 1 и 32
Не так. Мне надо узнать есть ли в гостинице одинаковые постояльцы. Для этого я:
- беру постояльца из 1 номера и сравниваю его с остальными (первый цикл);
- беру постояльца из 2 номера и сравниваю его с остальными, исключая первый (второй цикл);
- и т.д.
Теперь, что значит "сравниваю"? Я должен сравнить его имя, отчество, фамилию, вес, возраст, девичью фамилию тёщи, кличку собаки соседа..... Это крайне долго и поэтому действительно проще попросить портье сделать поиск по номеру паспорта (каковой номер назначен исходя из всех перечисленных качеств), даже если портье придётся сначала пройти по всем номерам и эти паспорта составить. Ведь он пройдёт по номерам один раз, а вложенные циклы будет гонять уже у себя за стойкой (хотя до некоторых постояльцев ему-таки придётся сгонять, но это уже нюансы).
Так было бы если бы в отеле жили объекты. НО это не наш случай!
Наш случай - крольчатник. Все кролики находятся в клетках с открытой стенкой, мне не надо заходить в каждый номер и потом долго выяснять все интересующие детали. У меня все кролики - полные клоны одного родителя (примитивы!), а отличаются только номерком на ошейнике. Их "перебрать" очень легко и быстро. Я могу сделать это сам, а могу попросить портье. Он сделает то же самое, но с заполнением целой кучи ненужной документации. И что будет быстрее?