TreeSet简单使用

仅仅是使用方法,非源码分析。

 1 public class Test {
 2
 3     public static void main(String[] args) {
 4         TreeSet<String> treeSet=new TreeSet<>();
 5         treeSet.add("Se");
 6         treeSet.add("Ald");
 7         treeSet.add("Boo");
 8         treeSet.add("CC");
 9         Iterator<String> iterator=treeSet.iterator();
10         while (iterator.hasNext()) {
11             String string = (String) iterator.next();
12             System.out.println(string);
13         }
14     }
15
16 }

输出:

Ald
Boo
CC
Se

使用TreeSet集合时,元素必须实现Comparable接口。

 1 public class Person implements Comparable<Person> {
 2     private String name;
 3     private int age;
 4
 5     public Person() {
 6         // TODO Auto-generated constructor stub
 7     }
 8
 9     public Person(String name, int age) {
10         this.name = name;
11         this.age = age;
12     }
13
14     public String getName() {
15         return name;
16     }
17
18     public void setName(String name) {
19         this.name = name;
20     }
21
22     public int getAge() {
23         return age;
24     }
25
26     public void setAge(int age) {
27         this.age = age;
28     }
29
30     @Override
31     public String toString() {
32         // TODO Auto-generated method stub
33         return "name:" + getName() + "  age:" + getAge();
34     }
35
36     /**
37      * 升序排列
38      */
39     @Override
40     public int compareTo(Person person) {
41         // TODO Auto-generated method stub
42         if (this.getAge() > person.getAge()) {
43             return 1;
44         } else if (this.getAge() == person.getAge()) {
45             return 0;
46         } else {
47             return -1;
48         }
49     }
50
51 }

测试类:

 1 public class Test {
 2
 3     public static void main(String[] args) {
 4         // TODO Auto-generated method stub
 5         TreeSet<Person> tSet = new TreeSet<>();
 6         tSet.add(new Person("shldom", 23));
 7         tSet.add(new Person("tom", 12));
 8         tSet.add(new Person("woa", 45));
 9         tSet.add(new Person("moe", 87));
10         Iterator<Person> iterator=tSet.iterator();
11         while(iterator.hasNext()){
12             System.out.println(iterator.next());
13         }
14     }
15
16 }

输出结果:

name:tom  age:12
name:shldom  age:23
name:woa  age:45
name:moe  age:87

时间: 2024-10-27 12:55:13

TreeSet简单使用的相关文章

Java集合简单解析

一. Collection 1. List a. ArrayList b. Vector c. LinkedList 首先要对List的三种实现进行一个简单的异同比较: 同: *ArrayList和Vector都可以看做是一个可变的数组: *ArrayList和LinkedList都属于线程不安全的类型: *但是ArrayList和LinkedList都可以通过调用Colletions类里的SynchronizedList()来进行ArrayList和LinkedList的调用来保证线程的安全性

HashSet,TreeSet和LinkedHashSet的区别

Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象. HashSet: 顺序是不确定性的. LinkedHashSet:按照输入的顺序进行输出. TreeSet:SortedSet 接口的唯一实现类,保证集合元素处于排序状态. 1.HashSetHashSet有以下特点    不能保证元素的

HashSet和TreeSet

Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象. HashSetHashSet有以下特点? 不能保证元素的排列顺序,顺序有可能发生变化? 不是同步的? 集合元素可以是null,但只能放入一个null当向HashSet结合中存入一个元素时,HashSet会调用该对象的hashCode()方

Java - TreeSet源码解析

Java提高篇(二八)------TreeSet 与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.在<Java提高篇(二七)-----TreeMap>中LZ详细讲解了TreeMap实现机制,如果客官详情看了这篇博文或者多TreeMap有比较详细的了解,那么TreeSet的实现对您是喝口水那么简单. 一.TreeSet定义 我们知道TreeMap是一个有序的二叉树,那么同理TreeSet同样也是一个有序的,它的作用是提供有序的Set集合.通过源码我们知

linkedhashSet和hashSet和TreeSet的区别(转)

Set接口Set不允许包含相同的元素,如果试图把两个相同元素加入同一个集合中,add方法返回false.Set判断两个对象相同不是使用==运算符,而是根据equals方法.也就是说,只要两个对象用equals方法比较返回true,Set就不 会接受这两个对象. HashSetHashSet有以下特点? 不能保证元素的排列顺序,顺序有可能发生变化? 不是同步的? 集合元素可以是null,但只能放入一个null当向HashSet结合中存入一个元素时,HashSet会调用该对象的hashCode()方

java模拟一个简单的QQ

效果图:       1 package testFour; 2 3 import java.awt.Color; 4 import java.awt.Dimension; 5 import java.awt.FontMetrics; 6 import java.awt.Graphics; 7 import java.io.ByteArrayInputStream; 8 import java.io.IOException; 9 import java.io.InputStream; 10 im

TreeSet源码解析笔记

定义: TreeSet是一个有序的集合,它的作用是提供有序的Set集合.它继承了AbstractSet抽象类,实现了NavigableSet<E>,Cloneable,Serializable接口.TreeSet是基于TreeMap实现的,TreeSet的元素支持2种排序方式:自然排序或者根据提供的Comparator进行排序. TreeSet的接口依赖图: 从图中可以看出: (1)TreeSet继承于AbstractSet,并且实现了NavigableSet接口. (2)TreeSet是一个

java中treemap和treeset实现(红黑树)

TreeMap 的实现就是红黑树数据结构,也就说是一棵自平衡的排序二叉树,这样就可以保证当需要快速检索指定节点. TreeSet 和 TreeMap 的关系 为了让大家了解 TreeMap 和 TreeSet 之间的关系,下面先看 TreeSet 类的部分源代码: public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializab

hashSet linkedHashSet treeSet 一点区别

上代码先: Set<String> hashSet=new HashSet<String>(); hashSet.add("thireBottom"); hashSet.add("thirdTop"); System.out.println(hashSet); Set<String> linkedSet=new LinkedHashSet<String>(); linkedSet.add("thireBott