常用对象集合自定义排序
来源:互联网 发布:淘宝的评价管理在哪 编辑:程序博客网 时间:2024/06/08 06:27
第一种方法可以认为是Java提供的自动排序的方法,而你需要有独特的排序时就可以用第二种方法,传一个comparator过去,这个comparator正是你要自定义排序的关键点,你可以实现Comparable接口,并且实现compareTo方法,在compareTo里面写你自己需要的排序方法,并且List和Vector、set、map都可以用这种方式实现自定义排序,下面我就举一个map自定义排序的方法,其他的都基本一致
package com.hollycrm.heqf;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;public class MapSort {public static void main(String[] args){ Map<String, Player> map = new HashMap<String, Player>(); Player p1 = new Player("John", 1000); Player p2 = new Player("Ben", 3000); Player p3 = new Player("Jack", 2000); map.put("John",p1); map.put("Ben",p2); map.put("Jack",p3); //将Map里面的所以元素取出来先变成一个set,然后将这个set装到一个list里面 List<Map.Entry<String, Player>> list = new ArrayList<Map.Entry<String, Player>>(map.entrySet()); //定义一个comparator Comparator<Map.Entry<String, Player>> comparator = new Comparator<Map.Entry<String, Player>>(){ @Override public int compare(Entry<String, Player> p1, Entry<String, Player> p2){ //之所以使用减号,是想要按照分数从高到低来排列 return -(p1.getValue().score - p2.getValue().score); } }; Collections.sort(list, comparator); for(Map.Entry<String, Player> entry:list){ System.out.println(entry.getValue().name + ":" + entry.getValue().score); } } }
package com.hollycrm.heqf;public class Player {String name; int score; public Player(String name, int score){ this.name = name; this.score = score; } }
1 0
- 常用对象集合自定义排序
- Java自定义对象数组、集合排序
- 集合框架-ArrayList集合存储自定义对象的排序案例
- 自定义的数据集合对象的自定义排序和显示
- 18-Map集合-07-常用对象API(集合框架-Map集合-HashMap存储自定义对象)
- 18-Map集合-08-常用对象API(集合框架-Map集合-TreeMap存储自定义对象)
- 对于集合内装载的对象数据进行自定义排序 !
- 对自定义对象集合List中的数据进行排序
- 集合中自定义对象排序的两种方式
- java 集合中自定义对象的几种排序方法
- 集合框架_ArrayList存储自定义对象并排序案例
- 对List集合中的对象进行自定义排序
- Java基础系列七、排序+常用对象+集合
- 17-集合框架-19-常用对象API(集合框架-HashSet存储自定义对象)
- 17-集合框架-25-常用对象API(集合框架-TreeSet集合练习-字符串长度排序)
- 集合类自定义排序
- java集合 自定义排序
- java集合 自定义排序
- Linux下chkconfig命令详解
- div+css简单实现圆形头像
- 1
- MODIFY TRANSPORTING
- setSpan时需要指定的flag参数含义
- 常用对象集合自定义排序
- 使用编辑器里的声音插件
- riot实现alert标签
- VC中CDockablePane使用心得
- 1017. A除以B (20)
- 压缩内核zImage的启动过程中的参数
- 一个无穷级数展开式
- Hibernate环境的配置
- Kafka学习(1)——kafka文档阅读笔记