Как я понимаю, класс ArrayList наследует функцию equals() его родительского класса List, чтобы найти, являются ли два объекта-члена одинаковыми. Означает ли это, что 'содержит()' линейный поиск (используя 'equal') для двойной записи в ArrayList? Таким образом, сложность «содержит» - это O (n)?Найти уникальный Arraylist в ArrayList из ArrayLists
Если я использую ArrayList Arraylist, тогда сложность функции содержит O (n * m)? Если да, то есть ли какая-либо замена содержит функцию, которая может получить некоторый хеш (на основе содержимого) члена ArrayList и подтвердить, что два объекта ArrayList равны?
Редактировать: Я просто пытаюсь найти количество уникальных элементов в ArrayList из ArrayList. Например {{0,0,3}, {1,2,3}, {0,0,3}} должны давать {{0,0,3}, {1,2,3}}.
Ваше понимание верное. Вам нужно будет написать метод замены и хэш-функцию самостоятельно. –
Вы можете получить логарифмическую производительность, если сортируете список, а затем используете двоичный поиск. Но нормальный содержит метод линейный. –
Существуют более подходящие структуры данных для 'contains', такие как' HashSet', но для получения более подробной информации о том, что вы пытаетесь сделать (как и для сторонних сторон). Установки по определению не содержат дубликатов. –