概述
TreeSet的特点:底层使用红黑树存储元素,新增顺序跟遍历顺序不一致,无序,去重
TreeSet中存储的元素必须能比较大小,通过自然排序或者定制排序类比较大小
放入TreeSet集合中的元素自己可以排序,则成为自然排序
public class TestThree {
public static void main(String[] args) {
// TreeSet的特点:底层使用红黑树存储元素,新增顺序跟遍历顺序不一致,无序,去重
// TreeSet中存储的元素必须能比较大小,通过自然排序或者定制排序类比较大小
// 放入TreeSet集合中的元素自己可以排序,则成为自然排序
Set set = new TreeSet();
// set.add("Aom");
// set.add("Jerry");
// set.add("Jary");
// set.add("June");
Student stu = new Student("Tom",20,"男");
Student stu1 = new Student("Jerry",20,"男");
Student stu2 = new Student("Mary",23,"女");
Student stu3 = new Student("June",21,"女");
set.add(stu);
set.add(stu1);
set.add(stu2);
set.add(stu3);
//set接口在判断元素重复之后它。它是不执行新增的
for (Object o : set) {
System.out.println(o);
}
}
}
如果返回负数代表调用方法的对象小,参数对象大
如果返回正数代表调用方法的对象大,参数对象小
返回0代表两个元素相等,不执行新增操作
每一个新加进来的元素都要去调用compare to和原来的元素比大小。
// 实现自然排序必须让实体类实现Comparable接口,实现compareTo方法
public class Student implements Comparable{
private String stuName;
private int stuAge;
private String stuGender;
// 如果返回负数代表调用方法的对象小,参数对象大
// 如果返回正数代表调用方法的对象大,参数对象小
// 返回0代表两个元素相等,不执行新增操作
//每一个新加进来的元素都要去调用compare to和原来的元素比大小。
@Override
public int compareTo(Object o) {
Student stu = (Student)o; //object强转为Student 有泛型就不用强转
int result = this.getStuAge() - stu.getStuAge();// 升序排列,年龄排序由小到大
// int result = stu.getStuAge() - this.getStuAge();// 降序排列
if(result == 0){ //年龄相等就比名字大小
result = this.getStuName().compareTo(stu.getStuName());
}
if(result == 0){ //名字相等比性别
result = this.getStuGender().compareTo(stu.getStuGender());
}
return result;
}
}
最后
以上就是高大龙猫为你收集整理的TreeSet的特点...的全部内容,希望文章能够帮你解决TreeSet的特点...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复