TreeSet 有两种排序方式
1. Java.lang.Comparble+compareTo
new TreeSet()
用这种方法必须要求实体类实现Comparable接口,也就是说要求添加到TreeSet中的元素是可排序的
2. java.util.Comparator +compare
举个TreeSet栗子:
package com.etc.test;
import java.util.Comparator;
import java.util.TreeSet;
import com.etc.entity.Person;
public class TreeSetDemo {
public static void main(String[] args) {
Person p1=new Person("depp",100);
Person p2=new Person("tom",90);
Person p3=new Person("jack",50);
TreeSet<Person> ts=new TreeSet<Person>(
new Comparator<Person>() {
public int compare(Person o1,Person o2){
return o1.getHandsome()-o2.getHandsome();//升序
}
}
);
ts.add(p1);
ts.add(p2);
ts.add(p3);
System.out.println(ts);
/*
* 排序结果没有改变,是因为TreeSet在添加元素的时候进行排序,需要注意,数据更改不会影响原来的顺序
还有一点需要注意的是,TreeSet中不可以数据重复,所以一般不修改数据,为了确保这一点,我们可以在Person类为属性加上final关键字,删除setter方法
*/
p3.setHandsome(200);//改变数据,排序不会改变
System.out.println(ts);
}
} 举个TreeMap栗子:
package com.etc.test; import java.util.Comparator;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet; import com.etc.entity.Person; public class TreeMapDemo {
public static void main(String[] args) {
Person p1=new Person("depp",100);
Person p2=new Person("tom",90);
Person p3=new Person("jack",50);
TreeMap<Person, String> tm=new TreeMap<Person, String>(new Comparator<Person>() {
public int compare(Person o1,Person o2)
{
return o1.getHandsome()-o2.getHandsome();//升序
}
});
tm.put(p1, "ttt");
tm.put(p2, "ttt");
tm.put(p3, "ttt");
System.out.println(tm);
//也可以用set进行输出 TreeMap也是在添加元素时进行排序
Set<Person> set=tm.keySet();
System.out.println(set);
}
}

  

最新文章

  1. 游戏编程系列[1]--游戏编程中RPC协议的使用
  2. Android 学习心得 页面跳转,不显示新页面信息
  3. Oracle解锁,解决“ora00054:资源正忙”错误
  4. 总结:视频播放的四种实现方案(Native)
  5. Windows下mysql忘记root密码的解决方法
  6. android网络框架Retrofit 同步异步
  7. AC日记——过河卒 洛谷 1002
  8. 转载:MyEclipse中防止代码格式化时出现换行的情况的设置
  9. MRP工作台任务下达之x组织屏蔽全部发放功能
  10. uva 12300 - Smallest Regular Polygon
  11. Azure IoT 技术研究系列2-起步示例之设备注册到Azure IoT Hub
  12. 使用MS Test做单元测试
  13. scrapy项目对接Docker
  14. angular下载安装
  15. Vue脚手架创建项目
  16. Angular.js实现分页
  17. mysql contact_ws函数 字符串被截断问题
  18. python网络编程--FTP上传文件示例
  19. PHP生成pdf文档
  20. 深入理解JavaScript系列(24):JavaScript与DOM(下)

热门文章

  1. ThoughtWorks(中国) 程序员读书雷达
  2. 【HTTP】初识代理
  3. windows中检查端口占用
  4. HDU - 1728 逃离迷宫 【BFS】
  5. 【LeetCode】:二叉树的Max,Min深度
  6. 每天一个Linux命令(16)which命令
  7. Data Structure Binary Tree: Largest Independent Set Problem
  8. Spring层面的事务管理
  9. springmvc的优化
  10. Idea 使用过程中遇到的问题记录