多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java 中的`TreeSet`类 > 原文: [https://beginnersbook.com/2013/12/treeset-class-in-java-with-example/](https://beginnersbook.com/2013/12/treeset-class-in-java-with-example/) `TreeSet`类似于[`HashSet`](https://beginnersbook.com/2013/12/hashset-class-in-java-with-example/),不同之处在于它按升序对元素进行排序,而`HashSet`不维护任何顺序。`TreeSet`允许`null`元素,但它不允许使用`HashSet`。像大多数其他集合类一样,这个类也没有同步,但它可以像这样明确地同步: `SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));` 在本教程中,我们将看到`TreeSet`示例以及`TreeSet`和其他类似集合类之间的区别。 ## TreeSet 示例: 在这个例子中,我们有两个`TreeSet`(`TreeSet<String>`和`TreeSet<Integer>`)。我们已经随机地将值添加到它们中,但是我们得到的结果按升序排序。 ```java import java.util.TreeSet; public class TreeSetExample { public static void main(String args[]) { // TreeSet of String Type TreeSet<String> tset = new TreeSet<String>(); // Adding elements to TreeSet<String> tset.add("ABC"); tset.add("String"); tset.add("Test"); tset.add("Pen"); tset.add("Ink"); tset.add("Jack"); //Displaying TreeSet System.out.println(tset); // TreeSet of Integer Type TreeSet<Integer> tset2 = new TreeSet<Integer>(); // Adding elements to TreeSet<Integer> tset2.add(88); tset2.add(7); tset2.add(101); tset2.add(0); tset2.add(3); tset2.add(222); System.out.println(tset2); } } ``` 输出:您可以看到`TreeSet`已按隐式升序排序。 ```java [ABC, Ink, Jack, Pen, String, Test] [0, 3, 7, 88, 101, 222] ``` #### `TreeSet`教程 * [`HashSet` vs `TreeSet`](https://beginnersbook.com/2014/08/difference-between-hashset-and-treeset/) * [如何将`HashSet`转换为`TreeSet`](https://beginnersbook.com/2014/08/how-to-convert-a-hashset-to-a-treeset/) #### 参考 * [`TreeSet` java 文档](https://docs.oracle.com/javase/7/docs/api/java/util/TreeSet.html)