Heim  >  Artikel  >  Java  >  Beispielcode für die Java-Sammlung TreeSet

Beispielcode für die Java-Sammlung TreeSet

黄舟
黄舟Original
2017-03-13 17:45:371682Durchsuche

TreeSet ist eine geordnete Menge und seine Funktion besteht darin, eine geordnete Mengensammlung bereitzustellen. Es erbt die abstrakte Klasse AbstractSet und implementiert die Schnittstelle NavigableSet 1a4db2c2c2313771e5742b6debf617a1, Cloneable, Serializable . TreeSet wird basierend auf TreeMap implementiert. Die Elemente von TreeSet unterstützen zwei Sortiermethoden: natürliche Sortierung oder Sortierung gemäß dem bereitgestellten Komparator.


Schnittstellenabhängigkeitsdiagramm von TreeSet:



Aus dem Bild Es ist ersichtlich aus:

(1) TreeSet erbt von AbstractSet und implementiert die NavigableSet-Schnittstelle.

(2) TreeSet ist eine geordnete Menge ohne doppelte Elemente, implementiert durch TreeMap.

Die wichtigsten

Funktionen von TreeSet

:


TreeSet-Traversal-Methode:
add(E object)
addAll(Collection83508b3899359a73fc86fed79373d537 collection)
clear()
Object  clone()
contains(Object object)
E   first()
isEmpty()
E last()
E pollFirst()
E pollLast()
E lower(E e)
E floor(E e)
E ceiling(E e)
E higher(E e)
remove(Object object)
size()
Comparator83508b3899359a73fc86fed79373d537 comparator()
Iteratora8093152e673feb7aba1828c43532094 iterator()
Iteratora8093152e673feb7aba1828c43532094 descendingIterator()
SortedSeta8093152e673feb7aba1828c43532094 headSet(E end)
NavigableSeta8093152e673feb7aba1828c43532094 descendingSet()
NavigableSeta8093152e673feb7aba1828c43532094 headSet(E endendInclusive)
SortedSeta8093152e673feb7aba1828c43532094 subSet(E startE end)
NavigableSeta8093152e673feb7aba1828c43532094 subSet(E startstartInclusiveE endendInclusive)
NavigableSeta8093152e673feb7aba1828c43532094 tailSet(E startstartInclusive)
SortedSeta8093152e673feb7aba1828c43532094 tailSet(E start)

(1) Iterator Sequentielle Traversierung Methode:


(2) Iterator-Traversalmethode in umgekehrter Reihenfolge:
(Iterator iter = set.iterator()iter.hasNext())
{
    iter.next()}


( 3)
(Iterator iter = set.descendingIterator()iter.hasNext()) 
{
    iter.next()}
foreach

traverse HashSet


TreeSet-Beispielcode:
<p style="margin-bottom: 9px;"><a href="http://www.php.cn/wiki/57.html" target="_blank">String</a>[] arr = (String[])set.to<a href="http://www.php.cn/wiki/58.html" target="_blank">Array</a>(<span style="background-color:inherit; color:rgb(204,120,50)"><a href="http://www.php.cn/wiki/165.html" target="_blank">new</a> </span>String[<span style="background-color:inherit; color:rgb(104,151,187)">0</span>])<span style="background-color:inherit; color:rgb(204,120,50)">;<br></span><span style="background-color:inherit; color:rgb(204,120,50)">for </span>(String str:arr)<br>{<br>    System.out.<a href="http://www.php.cn/wiki/1363.html" target="_blank">printf</a>(<span style="background-color:inherit; color:rgb(106,135,89)">"for each : %s</span><span style="background-color:inherit; color:rgb(204,120,50)">\n</span><span style="background-color:inherit; color:rgb(106,135,89)">"</span><span style="background-color:inherit; color:rgb(204,120,50)">, </span>str)<span style="background-color:inherit; color:rgb(204,120,50)">;<br></span>}<br></p>


TreeSet Quellcode-Analyse auf Basis von Java8:
public class Hello {

public static void main(String[] args) {
testTreeSetAPIs();
}

// 测试TreeSet的api
public static void testTreeSetAPIs() {
        String val;

// 新建TreeSet
TreeSet tSet = new TreeSet();
// 将元素添加到TreeSet中
tSet.add("aaa");
// Set中不允许重复元素,所以只会保存一个“aaa”
tSet.add("aaa");
tSet.add("bbb");
tSet.add("eee");
tSet.add("ddd");
tSet.add("ccc");
System.out.println("TreeSet:"+tSet);

// 打印TreeSet的实际大小
System.out.printf("size : %d\n", tSet.size());

// 导航方法
// floor(小于、等于)
System.out.printf("floor bbb: %s\n", tSet.floor("bbb"));
// lower(小于)
System.out.printf("lower bbb: %s\n", tSet.lower("bbb"));
// ceiling(大于、等于)
System.out.printf("ceiling bbb: %s\n", tSet.ceiling("bbb"));
System.out.printf("ceiling eee: %s\n", tSet.ceiling("eee"));
// ceiling(大于)
System.out.printf("higher bbb: %s\n", tSet.higher("bbb"));
// subSet()
System.out.printf("subSet(aaa, true, ccc, true): %s\n", tSet.subSet("aaa", true, "ccc", true));
System.out.printf("subSet(aaa, true, ccc, false): %s\n", tSet.subSet("aaa", true, "ccc", false));
System.out.printf("subSet(aaa, false, ccc, true): %s\n", tSet.subSet("aaa", false, "ccc", true));
System.out.printf("subSet(aaa, false, ccc, false): %s\n", tSet.subSet("aaa", false, "ccc", false));
// headSet()
System.out.printf("headSet(ccc, true): %s\n", tSet.headSet("ccc", true));
System.out.printf("headSet(ccc, false): %s\n", tSet.headSet("ccc", false));
// tailSet()
System.out.printf("tailSet(ccc, true): %s\n", tSet.tailSet("ccc", true));
System.out.printf("tailSet(ccc, false): %s\n", tSet.tailSet("ccc", false));
// 删除“ccc”
tSet.remove("ccc");
// 将Set转换为数组
String[] arr = (String[])tSet.toArray(new String[0]);
        for (String str:arr)
            System.out.printf("for each : %s\n", str);

// 打印TreeSet
System.out.printf("TreeSet:%s\n", tSet);

// 遍历TreeSet
for(Iterator iter = tSet.iterator(); iter.hasNext(); ) {
            System.out.printf("iter : %s\n", iter.next());
}

// 删除并返回第一个元素
val = (String)tSet.pollFirst();
System.out.printf("pollFirst=%s, set=%s\n", val, tSet);

// 删除并返回最后一个元素
val = (String)tSet.pollLast();
System.out.printf("pollLast=%s, set=%s\n", val, tSet);

// 清空HashSet
tSet.clear();

// 输出HashSet是否为空
System.out.printf("%s\n", tSet.isEmpty()?"set is empty":"set is not empty");
}
}

public class Hello {

    public static void main(String[] args) {
        testTreeSetAPIs();
    }

    // 测试TreeSet的api
    public static void testTreeSetAPIs() {
        String val;

        // 新建TreeSet
        TreeSet tSet = new TreeSet();
        // 将元素添加到TreeSet中
        tSet.add("aaa");
        // Set中不允许重复元素,所以只会保存一个“aaa”
        tSet.add("aaa");
        tSet.add("bbb");
        tSet.add("eee");
        tSet.add("ddd");
        tSet.add("ccc");
        System.out.println("TreeSet:"+tSet);

        // 打印TreeSet的实际大小
        System.out.printf("size : %d\n", tSet.size());

        // 导航方法
        // floor(小于、等于)
        System.out.printf("floor bbb: %s\n", tSet.floor("bbb"));
        // lower(小于)
        System.out.printf("lower bbb: %s\n", tSet.lower("bbb"));
        // ceiling(大于、等于)
        System.out.printf("ceiling bbb: %s\n", tSet.ceiling("bbb"));
        System.out.printf("ceiling eee: %s\n", tSet.ceiling("eee"));
        // ceiling(大于)
        System.out.printf("higher bbb: %s\n", tSet.higher("bbb"));
        // subSet()
        System.out.printf("subSet(aaa, true, ccc, true): %s\n", tSet.subSet("aaa", true, "ccc", true));
        System.out.printf("subSet(aaa, true, ccc, false): %s\n", tSet.subSet("aaa", true, "ccc", false));
        System.out.printf("subSet(aaa, false, ccc, true): %s\n", tSet.subSet("aaa", false, "ccc", true));
        System.out.printf("subSet(aaa, false, ccc, false): %s\n", tSet.subSet("aaa", false, "ccc", false));
        // headSet()
        System.out.printf("headSet(ccc, true): %s\n", tSet.headSet("ccc", true));
        System.out.printf("headSet(ccc, false): %s\n", tSet.headSet("ccc", false));
        // tailSet()
        System.out.printf("tailSet(ccc, true): %s\n", tSet.tailSet("ccc", true));
        System.out.printf("tailSet(ccc, false): %s\n", tSet.tailSet("ccc", false));
        // 删除“ccc”
        tSet.remove("ccc");
        // 将Set转换为数组
        String[] arr = (String[])tSet.toArray(new String[0]);
        for (String str:arr)
            System.out.printf("for each : %s\n", str);

        // 打印TreeSet
        System.out.printf("TreeSet:%s\n", tSet);

        // 遍历TreeSet
        for(Iterator iter = tSet.iterator(); iter.hasNext(); ) {
            System.out.printf("iter : %s\n", iter.next());
        }

        // 删除并返回第一个元素
        val = (String)tSet.pollFirst();
        System.out.printf("pollFirst=%s, set=%s\n", val, tSet);

        // 删除并返回最后一个元素
        val = (String)tSet.pollLast();
        System.out.printf("pollLast=%s, set=%s\n", val, tSet);

        // 清空HashSet
        tSet.clear();

        // 输出HashSet是否为空
        System.out.printf("%s\n", tSet.isEmpty()?"set is empty":"set is not empty");
    }
}
TreeSet-Quellcode-Analyse auf Basis von Java8:

Das obige ist der detaillierte Inhalt vonBeispielcode für die Java-Sammlung TreeSet. 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