博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TreeSet集合排序方式一:自然排序Comparable
阅读量:5264 次
发布时间:2019-06-14

本文共 2284 字,大约阅读时间需要 7 分钟。

TreeSet集合默认会进行排序。因此必须有排序,如果没有就会报类型转换异常。

自然排序

Person class—>实现Comparable,实现compareTo()方法

package Homework1and2;import java.text.CollationKey;import java.text.Collator;/** * Person类 有属性  name,age,sex    排序规则: 第一条件  年龄降序,第二条件  姓名 降序,第三条件 性别升序 * @author Administrator * */public class Person implements Comparable
{ private static String name; private int age; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]"; } public Person(String name, int age, String sex) { super(); this.name = name; this.age = age; this.sex = sex; } public Person() { super(); } //排序规则: 第一条件 年龄降序,第二条件 姓名 降序,第三条件 性别升序 @Override public int compareTo(Person o) { if(age>o.age){ return -1; }else if(age
0){ return -1; }else if(num<0){ return 1; }else { CollationKey key3=Collator.getInstance().getCollationKey(sex); CollationKey key4=Collator.getInstance().getCollationKey(o.sex); int s=key3.compareTo(key4); if(s>0){ return 1; }else if(s<0){ return -1; }else { return 0; } } } }}

测试

public class Test1 {
public static void main(String[] args){ TreeSet
list=new TreeSet<>(); //年龄降序 list.add(new Person("李白1", 15, "男")); list.add(new Person("李白2", 18, "男")); //姓名降序 list.add(new Person("a妲己3", 20, "女")); list.add(new Person("z褒姒4", 20, "女")); //性别升序 list.add(new Person("妲己", 17, "a女")); list.add(new Person("妲己", 17, "z男")); System.out.println(list); }}

转载于:https://www.cnblogs.com/TCB-Java/p/6770142.html

你可能感兴趣的文章
点击不同位置实现同一个文件上传框上传头像
查看>>
Xenia and Bit Operations CodeForces - 339D
查看>>
ucgui汉字库存放到外部的flash(控件可用)及写外部FLASH小软件
查看>>
SpringBoot学习笔记
查看>>
pat1087. All Roads Lead to Rome (30)
查看>>
json上传github
查看>>
iOS-程序启动原理和UIApplication
查看>>
SpringMVC入门(二)—— 参数的传递、Controller方法返回值、json数据交互、异常处理、图片上传、拦截器...
查看>>
git的安装
查看>>
mysql 8.0 zip包安装
查看>>
Spring框架系列(三)--Bean的作用域和生命周期
查看>>
springboot + mybatis
查看>>
awk 统计
查看>>
CSS min-height 属性
查看>>
SDN第一次作业
查看>>
修改ip地址
查看>>
[zz]kvm环境快照(snapshot)的使用方法
查看>>
Linux下使用Git命令及Github项目
查看>>
红米note3Toast不显示问题
查看>>
用Visio工具对实体类进行UML建模
查看>>