TreeSet排序
来源:互联网 发布:js酷炫特效 编辑:程序博客网 时间:2024/06/08 13:15
TreeSet的排序可以通过两种方法来实现:
1.通过TreeSet(Comparator<? super E> comparator) 构造方法指定TreeSet的比较器进行排序;
2.使用TreeSet()构造方法,并对需要添加到set集合中的元素实现Comparable接口进行排序;
方法一例子:
person类:
public class Person {private String name;private int age;private String date;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 getDate() {return date;}public void setDate(String date) {this.date = date;}public Person(String name) {this.name=name;}public Person() {}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", date=" + date + "]";}public Person(String name, int age, String date) {super();this.name = name;this.age = age;this.date = date;}}
自己实现比较器:
import java.util.Comparator;public class MyComparator implements Comparator<Person>{@Overridepublic int compare(Person p1, Person p2) {if(p1.getAge()>p2.getAge()){return 1;}else if(p1.getAge()==p2.getAge()){return 0;}else{return -1;}}}
测试数据:
@Testpublic void treeSet(){//所有元素总是根据指定排序规则保持有序状态。Set<Person> set = new TreeSet<Person>(new MyComparator());set.add(new Person("aaa", 67, "254"));set.add(new Person("bbb", 16, "254"));set.add(new Person("ccc", 1, "254"));set.add(new Person("ddd", 675, "254"));System.out.println(set); }
结果:
方法二例子:
person类,需要实现Comparable接口,并重写compareTo()方法,compareTo方法中定义排序的方式
public class Person2 implements Comparable {private String name;private int age;private String date;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 getDate() {return date;}public void setDate(String date) {this.date = date;}public Person2(String name) {this.name = name;}public Person2() {}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", date=" + date + "]";}public Person2(String name, int age, String date) {super();this.name = name;this.age = age;this.date = date;}@Overridepublic int compareTo(Object obj) {if (obj instanceof Person2) {//instanceof判断内存中实际对象obj是不是Person2类型Person2 p = (Person2) obj;if (this.age > p.getAge()) {return 1;} else if (this.age == p.getAge()) {return 0;} else {return -1;}}return 0;}}测试数据:
@Testpublic void treeSet2(){Set<Person2> set = new TreeSet<Person2>();set.add(new Person2("aaa", 67, "254"));set.add(new Person2("bbb", 16, "254"));set.add(new Person2("ccc", 1, "254"));set.add(new Person2("ddd", 675, "254"));System.out.println(set); }
测试结果:
[Person [name=ccc, age=10, date=254], Person [name=eee, age=12, date=254], Person [name=bbb, age=16, date=254], Person [name=aaa, age=67, date=254], Person [name=ddd, age=675, date=254]]
1 1
- TreeSet排序
- TreeSet 排序
- TreeSet排序
- TreeSet 排序
- 使用TreeSet()进行排序
- 总结TreeSet排序问题
- TreeSet进行中文排序
- TreeSet排序总结
- TreeSet实现排序(二)
- TreeSet实现排序(一)
- TreeSet排序问题
- 总结TreeSet排序问题
- TreeSet自然排序
- TreeSet的排序
- TreeSet实现自定义排序
- 总结TreeSet排序问题 .
- TreeSet排序树
- TreeSet排序Comparator
- 使用Java处理除法运算的陷阱
- [小技巧] Linux下判断一个线程是否为内核线程
- 享元模式
- 如何安装PIL--*** TKINTER support not available---IOError: cannot identify image file
- 在iOS8系统下,UITabbar上的item自定义背景色和图片问题 (
- TreeSet排序
- IOS编程之相机和相册
- jsp页面的div层的弹出效果
- Delphi xe7并行编程快速入门
- 移位运算的算法
- 模板之Typelist的"增删改查"
- MySQL随堂笔记| 深度结合个人理解
- android scrollview嵌套scrollview,gridview,listview的方法和深层次原因
- VS2012不能创建数据库连接出现或者连接数据库时提示:未能加载文件或程序集“Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, C