Heim  >  Artikel  >  Java  >  So verwenden Sie die TreeSet-Funktion in Java für geordnete Mengenoperationen

So verwenden Sie die TreeSet-Funktion in Java für geordnete Mengenoperationen

王林
王林Original
2023-06-26 14:51:101813Durchsuche

Javas TreeSet ist ein geordneter Satz, der auf der Grundlage rot-schwarzer Bäume implementiert wird. Seine Funktion besteht darin, dass Elemente nach Größe sortiert werden und Elemente schnell hinzugefügt, gelöscht und durchsucht werden können. In diesem Artikel wird erläutert, wie Sie die TreeSet-Funktion in Java verwenden, um geordnete Mengenoperationen auszuführen, damit sie besser in der tatsächlichen Programmierung angewendet werden kann.

1. Grundfunktionen von TreeSet

1. Erstellen Sie ein TreeSet-Objekt.

Um TreeSet verwenden zu können, müssen Sie zuerst ein TreeSet-Objekt erstellen. Sie können den parameterlosen Konstruktor verwenden, um ein leeres TreeSet zu erstellen, oder Sie können einen Comparator angeben, um die Sortierung beim Erstellen des TreeSet-Objekts anzupassen.

Beispielcode:

TreeSet<Integer> set = new TreeSet<>();
TreeSet<String> set2 = new TreeSet<>(new Comparator<String>() {
    @Override
    public int compare(String o1, String o2) {
        // 自定义排序规则
        return o1.compareToIgnoreCase(o2);
    }
});

2. Elemente hinzufügen

Elemente zu TreeSet hinzufügen über die Methode add(). TreeSet sortiert Elemente automatisch nach ihrer Größe und dieselben Elemente werden nur einmal gespeichert.

Beispielcode:

set.add(3);
set.add(1);
set.add(2);
set.add(3);
// 结果为[1, 2, 3]
System.out.println(set);

3. Elemente löschen

Sie können die Methode „remove()“ verwenden, um Elemente in einem TreeSet zu löschen.

Beispielcode:

set.remove(3);
// 结果为[1, 2]
System.out.println(set);

4. Bestimmen Sie, ob ein Element vorhanden ist

Sie können die Methode „contains()“ verwenden, um festzustellen, ob ein Element im TreeSet vorhanden ist.

Beispielcode:

boolean contains = set.contains(2);
// 结果为true
System.out.println(contains);

5. Ermitteln Sie die Anzahl der Elemente

Sie können die Methode size() verwenden, um die Anzahl der Elemente im TreeSet abzurufen.

Beispielcode:

int size = set.size();
// 结果为2
System.out.println(size);

6. Elemente durchqueren

Sie können die for-Schleife oder die forEach()-Methode verwenden, um die Elemente im TreeSet zu durchqueren.

Beispielcode:

for (Integer i : set) {
    System.out.print(i + " ");
}
System.out.println();

set.forEach(System.out::println);

Ausgabeergebnis:

1 2 
1
2

2. Erweiterte Operationen von TreeSet

1. Holen Sie sich das erste Element und das letzte Element

Sie können die Methoden first() und last() verwenden, um das dritte zu erhalten Element im TreeSet ein Element und das letzte Element.

Beispielcode:

Integer first = set.first();
Integer last = set.last();
// 结果为1 2
System.out.println(first + " " + last);

2. Holen Sie sich eine Teilmenge

Sie können die subSet()-Methode verwenden, um eine Teilmenge von TreeSet abzurufen, die Elemente von fromElement (einschließlich) bis toElement (exklusiv) enthält. Wenn fromElement nicht angegeben ist, bedeutet dies, dass mit dem ersten Element im TreeSet begonnen wird.

Beispielcode:

TreeSet<Integer> subSet = (TreeSet<Integer>) set.subSet(1, 2);
// 结果为[1]
System.out.println(subSet);

TreeSet<String> subSet2 = (TreeSet<String>) set2.subSet("A", "c");
// 结果为[b, C]
System.out.println(subSet2);

Es ist zu beachten, dass sich bei einer Änderung der Teilmenge auch das ursprüngliche TreeSet ändert.

3. Erhalten Sie eine Teilmenge der Head- oder Tail-Elemente

Sie können die headSet()-Methode und die tailSet()-Methode verwenden, um eine Teilmenge der Head- (außer toElement) oder Tail-Elemente (einschließlich fromElement) des TreeSets zu erhalten.

Beispielcode:

TreeSet<Integer> headSet = (TreeSet<Integer>) set.headSet(2);
// 结果为[1]
System.out.println(headSet);

TreeSet<String> tailSet = (TreeSet<String>) set2.tailSet("b");
// 结果为[b, C]
System.out.println(tailSet);

Beachten Sie außerdem, dass sich auch das ursprüngliche TreeSet ändert, wenn sich die Teilmenge ändert.

4. Elemente abrufen, die kleiner oder größer als das angegebene Element sind.

Sie können die Methode „lower()“, „floor()“, „higher()“ und „floor()“ verwenden, um die Elemente abzurufen, die kleiner oder größer sind als das angegebene Element.

Beispielcode:

Integer lower = set.lower(2);
Integer floor = set.floor(2);
Integer higher = set.higher(1);
Integer ceiling = set.ceiling(1);
// 结果为1 2 2 1
System.out.println(lower + " " + floor + " " + higher + " " + ceiling);

Es ist zu beachten, dass:

  • Der Unterschied zwischen der Methode „lower()“ und der Methode „floor()“ besteht darin, dass die Methode „lower()“ das größte Element erhält, das kleiner als das angegebene Element ist , das größte Element, das kleiner als das angegebene Element ist; Die Methode floor() erhält das nächste Element, das kleiner als das angegebene Element ist, dh das nächste Element, das kleiner oder gleich dem angegebenen Element ist.
  • Der Unterschied zwischen der Methode „higher()“ und der Methode „ceiling()“ besteht darin, dass die Methode „higher()“ das kleinste Element abruft, das größer als das angegebene Element ist, also das kleinste Element, das größer als das angegebene Element ist Die Methode Decke () ruft das nächste Element ab, das größer als das angegebene Element ist. Das heißt, das nächste Element, das größer oder gleich dem angegebenen Element ist.

3. Zusammenfassung

Dieser Artikel stellt die grundlegenden Operationen und erweiterten Operationen der TreeSet-Funktion in Java vor. Sie können die entsprechende Betriebsmethode entsprechend den tatsächlichen Anforderungen auswählen, um geordnete Sammelvorgänge durchzuführen. Es ist zu beachten, dass sich bei Verwendung der subSet()-Methode, der headSet()-Methode und der tailSet()-Methode bei einer Änderung der Teilmenge auch das ursprüngliche TreeSet ändert. Sie müssen dies daher berücksichtigen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die TreeSet-Funktion in Java für geordnete Mengenoperationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn