Какой набор данных лучше всего подходит для сортировки и удаления дубликатов в 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
обнаружит дубликат. Надеюсь, мне ясно.