Какой набор данных лучше всего подходит для сортировки и удаления дубликатов в Java?

Если используется

TreeSet

, он не дает гарантии удаления дубликатов из-за своего метода двоичного поиска.

Если используется

HashSet

, это не обеспечивает сортировку.

Я хочу, чтобы обе функции были вместе в наборе данных. Какие предпочтительные способы для того же?

Неужели единственный способ - сначала удалить дубликаты с помощью HashSet, а затем скопировать их в TreeSet для сортировки?

1 ответ

Использование TreeSet и если compareTo() возвращает 0 для двух элементов, чем будет заменено, следовательно, будут присутствовать только уникальные элементы..

 TreeSet<Object1> tree=new TreeSet<Object1>(new Comparator<Object1>() {
        @Override
        public int compare(Object1 o1, Object1 o2) {
            return o1.k-o2.k;
        }
    });

Вот Object1 как показано ниже:

class Object1{
    int k;
}

Если два объекта Object1 одинаковы то есть int k чем compare() метод вернет 0 и TreeSet обнаружит дубликат. Надеюсь, мне ясно.

Другие вопросы по тегам