TreeSet 底层实际是 TreeMap 实现的,内部维持了一个简化版的 TreeMap,通过 key 来存储 Set 的元素。 TreeSet 内部需要对存储的元素进行排序,因此,我们对应的类需要四线 Comparable 接口。这样才能根据 compareTo() 方法比较对象之间的大小,才能进行内部排序 (TreeMap 对key进行升序排列)
package com.jianshun;
import java.util.Set;
import java.util.TreeSet;
/**
* 测试TreeSet
* 熟悉Comparable接口(参考TreeMap)
* @author Administrator
*
*/
public class TestTreeSet {
public static void main(String[] args) {
Set<Integer> set = new TreeSet<Integer>();
set.add(300);
set.add(200);
set.add(600);
for(Integer m : set){
System.out.println(m);
}
Set<Emp2> set2 = new TreeSet<Emp2>();
set2.add(new Emp2(100,"张三",3000));
set2.add(new Emp2(50,"李四",2000));
set2.add(new Emp2(150,"王五",8000));
set2.add(new Emp2(30,"赵六",20000));
for(Emp2 m : set2){
System.out.println(m);
}
}
}
//当key是一个自定义对象时;
class Emp2 i