一、底层数据结构不同
- HashSet:HashSet 是哈希表(HashMap)实现的。
- TreeSet:TreeSet 是使用二叉树原理的 TreeMap 实现的。
二、数据的排列
- HashSet:HashSet中的数据是无序的。
- TreeSet:Treeset中的数据是自动排好序的。
TreeSet<student> ts=new TreeSet<Employee>(new Comparator<Employee>() {
@Override
public int compare(Employee e1, Employee e2) {
int num = e1.salary - e2.salary;
int num2 = num == 0 ? e1.number - e2.number : num;
return num2;
}
});
三、存放数据的要求
- HashSet:可以放入null,但只能放入一个null。
- TreeSet:不允许放入null值。