Я читал о наборе деревьев, который является частью структуры коллекций Java. Я застрял в аспекте, если набор деревьев хранит его элементы в парах форм?Является ли TreeSet основанным на ключе и значении?
ответ
API TreeSet в контексте объектов Comparable, но под капотом он использует TreeMap, где каждая пара ключ-значение имеет тот же объект-заглушку PRESENT. Глядя в the code, это:
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
Например, добавить реализован как:
public boolean add(E e) {
return m.put(e, PRESENT)==null;
}
Карты требуют уникальности на клавишах, поэтому они просто более общие версии множеств и есть все необходимое техника. Но нам нужна только одна половина карты, ключи, и она может заменить различные значения с помощью единственного фиктивного значения.
Большое вам спасибо за это! Вы упомянули в своем объяснении, добавление выполняется следующим образом. Но в большинстве кода я действительно не вижу этот метод, кроме Linkedlist. Это сделано внутренне? – Srinivas
TreeSet не основан на ключе и значении. TreeMap - – JavaHopper
TreeSet: https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html TreeMap: https://docs.oracle.com/javase/7/docs/ api/java/util/TreeMap.html – JavaHopper