Сравнение производительности TreeSet и HashSet в Java
В этом руководстве объясняются все различия и общие черты между TreeSet и HashSet. Действительно, это очень популярный вопрос в java-коллекциях, таких как ArrayList и Vector и HashTable и HashMap. Вероятно, самым важным различием является performance.TreeSet vs HashSet
1) HashSet обеспечивает стабильную производительность для основных операций, таких как: добавить, удалить, содержит и размер. HashSet быстрее, чем TreeSet и это будет очень хорошим выбором, если вам не нужно сортировать элементы, потому что HashSet не имеет системы сортировки. TreeSet Гарантированное время log(n) для основных операций (добавить, remove et содержит).
2) HashSet не гарантирует, что элементы будут отсортированы. TreeSet гарантирует, что элементы упорядочены в порядке возрастания или определены interface Comparable или что-то еще, что вы укажете в конструкторе, определенном интерфейсом Comparator Java.
3) Производительность обхода зависит от начальной емкости и коэффициента загрузки HashSet. TreeSet не имеет параметров, влияющих на производительность курса.
4) TreeSet предлагает методы, которых нет в HashSet : first(), last(), headSet() и tailSet().
5) HashSet использует метод equals() для сравнения двух объектов и обнаружения повторяющихся объектов. TreeSet использует метод compareTo(). equals() возвращает true, если оба объекта равны и compareTo() должен возвращать ноль.
5) HashSet использует метод equals() для сравнения двух объектов и обнаружения повторяющихся объектов. TreeSet использует метод compareTo(). equals() возвращает true, если оба объекта равны и compareTo() должен возвращать ноль.
Сходство между TreeSet и HashSet в Java
HashSet и TreeSet есть много общих вещей, давайте посмотрим:
1) Оба реализуют интерфейс java.util.Set, CE что означает, что они не позволяют вставлять повторяющиеся элементы.
1) Оба реализуют интерфейс java.util.Set, CE что означает, что они не позволяют вставлять повторяющиеся элементы.
2) Эти две реализации не синхронизированы. Вы можете синхронизировать их с помощью Collections.synchronizedSet().
3) Если вам нужен отсортированный набор, быстрее добавить элементы в HashSet а затем преобразуйте их в TreeSet чем создать TreeSet и добавляем elements.
В итоге можно сказать, что выбор использования полностью зависит от ваших потребностей.
3) Если вам нужен отсортированный набор, быстрее добавить элементы в HashSet а затем преобразуйте их в TreeSet чем создать TreeSet и добавляем elements.
В итоге можно сказать, что выбор использования полностью зависит от ваших потребностей.
Пример HashSet:
import java.util.HashSet;TreeSet example:
public class example: {
public static void main(String[] args) {
HashSet< Строка> hset = новый HashSet< Строка> ();
hset.add("1");
hset.add("3");
hset.add("2");
hset.add("5");
for(String s: hset)
System.out.println(s);
}
}
Результат:
3
2
1
5
import java.util.TreeSet;References:
public class example: {
public static void main(String[] args) {
TreeSet< Строка> tset = новый TreeSet< Строка> ();
tset.add("1");
tset.add("3");
tset.add("2");
tset.add("5");
for(String s: tset)
System.out.println(s);
}
}
Result:
1
2
3
5
Разница между HashSet и TreeSet в Java
Hashset vs Treeset