java 集合 TreeSet

来源:互联网 发布:java构造器是什么 编辑:程序博客网 时间:2024/05/16 16:23

Student1类:

import java.util.Iterator;import java.util.Set;public class Student1 implements Comparable<Student1>{private String id;private String name;private String sex;private int age;public Student1(){}public Student1(String id,String name,String sex,int age){this.id=id;this.name=name;this.sex=sex;this.age=age;}public Student1(String id,String name,String sex){this.id=id;this.name=name;this.sex=sex;}public Student1(String id,String name){this.name=name;this.id=id;}public String getId(){return id;}@Overridepublic String toString() {return "[id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + "]";}//如果学号相同,那就认为学生相同@Overridepublic boolean equals(Object obj){Student1 student1=(Student1)obj;return this.id.equals(student1.id);}@Overridepublic int hashCode() {// TODO Auto-generated method stub//return super.hashCode();//调用String类型的hashCode()方法return this.id.hashCode();}@Overridepublic int compareTo(Student1 o) {// TODO Auto-generated method stub//return this.id.compareTo(o.id);//按字典顺序比较学号大小:从小到大return o.id.compareTo(this.id);//从大到小排序}//遍历方法public static void  printSet(Set set){System.out.println("{");for(Iterator<Student1> iterator=set.iterator();iterator.hasNext();){Student1 student1=iterator.next();System.out.print(student1+"\n");}System.out.println("}");}}
测试类:

import java.util.Comparator;import java.util.Set;import java.util.TreeSet;//定制排序class StuComparator implements Comparator<Student1>{@Overridepublic int compare(Student1 o1, Student1 o2) {// TODO Auto-generated method stubreturn o1.getId().compareTo(o2.getId());//按字典顺序(从小到大)排序}}class StuComparator1 implements Comparator<Student1>{@Overridepublic int compare(Student1 o1, Student1 o2) {// TODO Auto-generated method stubreturn o2.getId().compareTo(o1.getId());//按字典顺序(从大到小)排序}}public class TreeSetTest {public static void main(String[] args) {System.out.println("使用自然排序:从大到小-----------------------------");TreeSet<Student1> students=new TreeSet<Student1>();students.add(new Student1("B1000", "小明", "male", 23));students.add(new Student1("B1001", "小明", "male", 23));students.add(new Student1("B1002", "小明", "male", 23));Student1.printSet(students);students.add(new Student1("C1002", "小明", "male", 23));students.add(new Student1("A1002", "小明", "male", 23));Student1.printSet(students);//使用定制排序System.out.println("使用定制排序:从小到大-----------------------------");Set<Student1> students1=new TreeSet<Student1>(new StuComparator());students1.add(new Student1("B1000", "小明", "male", 23));students1.add(new Student1("B1001", "小明", "male", 23));students1.add(new Student1("B1002", "小明", "male", 23));students1.add(new Student1("C1002", "小明", "male", 23));students1.add(new Student1("A1002", "小明", "male", 23));Student1.printSet(students1);System.out.println("使用定制排序:从大到小-----------------------------");Set<Student1> students2=new TreeSet<Student1>(new StuComparator1());students2.add(new Student1("B1000", "小明", "male", 23));students2.add(new Student1("B1001", "小明", "male", 23));students2.add(new Student1("B1002", "小明", "male", 23));students2.add(new Student1("C1002", "小明", "male", 23));students2.add(new Student1("A1002", "小明", "male", 23));Student1.printSet(students2);}}
结果:

使用自然排序:从大到小-----------------------------
{
[id=B1002, name=小明, sex=male, age=23]
[id=B1001, name=小明, sex=male, age=23]
[id=B1000, name=小明, sex=male, age=23]
}
{
[id=C1002, name=小明, sex=male, age=23]
[id=B1002, name=小明, sex=male, age=23]
[id=B1001, name=小明, sex=male, age=23]
[id=B1000, name=小明, sex=male, age=23]
[id=A1002, name=小明, sex=male, age=23]
}
使用定制排序:从小到大-----------------------------
{
[id=A1002, name=小明, sex=male, age=23]
[id=B1000, name=小明, sex=male, age=23]
[id=B1001, name=小明, sex=male, age=23]
[id=B1002, name=小明, sex=male, age=23]
[id=C1002, name=小明, sex=male, age=23]
}
使用定制排序:从大到小-----------------------------
{
[id=C1002, name=小明, sex=male, age=23]
[id=B1002, name=小明, sex=male, age=23]
[id=B1001, name=小明, sex=male, age=23]
[id=B1000, name=小明, sex=male, age=23]
[id=A1002, name=小明, sex=male, age=23]
}


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝上店家关铺无法赔偿怎么办 未发货申请退款卖家拒绝怎么办 淘宝订单未发货买家恶意退款怎么办 淘宝被限制购买还有没退款的怎么办 复制粘贴了打字在复制下页怎么办? 得了抑郁症没办法还贷款了怎么办 淘宝东西退了商家不退钱怎么办 京东买东西付款后显示未付款怎么办 不能吃小龙虾的人吃了怎么办 闲鱼退货卖家收到货不退款怎么办 没收到货申请退款卖家不同意怎么办 咸鱼买家不确认收货老退款怎么办 买家买了确认收货然后退款怎么办 买家收确认收货后还申请退款怎么办 淘宝收到货后买家故意说少货怎么办 对面商铺放很大声音乐怎么办 在店面住隔壁商铺一直放音乐怎么办 淘宝卖家把买家评论删了怎么办 淘宝店铺上当顾客说再看看怎么办 车辆摇号申请说手机号注册怎么办 如果在微商手上买到假东西怎么办? 登陆微信显示版本过低该怎么办 苹果手机登陆微信版本过低怎么办 微信版本过低无法登怎么办录 登入微信显示版本过低登不上怎么办 微信版本过低无法使用小程序怎么办 小米4s微信反应很慢怎么办 手机网页缓存的视频播放不了怎么办 ios微信占用内存太大了怎么办 爱奇艺离线视频显示暂无缓存怎么办 酷狗音乐不小心删了歌怎么办 苹果手机里系统占的空间太大怎么办 酷狗音乐歌单里有不同步的歌怎么办 一插耳机手机自带音乐就响怎么办 清理空间时不小心把图片删了怎么办 手机中清理误把照片删了怎么办 清理手机文件把照片给删了怎么办 清理手机不小心把照片删了怎么办 金牛不回微信我也不理他他会怎么办 华为手机微信文件自动删除怎么办 微信清理数据后不能登录了怎么办