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
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 TreeSetadd(E object) addAll(Collection<? E> 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() Comparator<? E> comparator() Iterator<> iterator() Iterator<> descendingIterator() SortedSet<> headSet(E end) NavigableSet<> descendingSet() NavigableSet<> headSet(E endendInclusive) SortedSet<> subSet(E startE end) NavigableSet<> subSet(E startstartInclusiveE endendInclusive) NavigableSet<> tailSet(E startstartInclusive) SortedSet<> tailSet(E start)
(1) Iterator Sequentielle Traversierung Methode:
(Iterator iter = set.iterator()iter.hasNext()) { iter.next()}
(Iterator iter = set.descendingIterator()iter.hasNext()) { iter.next()}
<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>
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"); } }
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!