java中的list自定义排序以及倒排序的实现
2013-01-21 11:44
579 查看
涉及知识点:如标题
大神可以一笑而过~~~
今天进行数据处理,把处理过的数据存放在List()中,list中的元素为HashMap<String,Object>
其中元素map中有三个键值对id,name,num.
主要处理每种元素出现的次数,后面的num就是出现的次数。
需求是想要把出现次数较多的数据排在前面。
需要自己写一个比较类,实现java.util.Comparator 接口。
使用Collections.sort(list, comparator); 来进行比较。
上代码:
①
其中比较类如下图,可以根据自己的业务需求进行更改:
②
③
排序涉及到正排序和倒排序,这个需要自己在自己的实现类里面来处理。如果是正排序就比较第一个值和第二个值;如果是倒排序,那么比较第二个值和第一个值,两个互相颠倒即可。
大神可以一笑而过~~~
今天进行数据处理,把处理过的数据存放在List()中,list中的元素为HashMap<String,Object>
其中元素map中有三个键值对id,name,num.
主要处理每种元素出现的次数,后面的num就是出现的次数。
需求是想要把出现次数较多的数据排在前面。
需要自己写一个比较类,实现java.util.Comparator 接口。
使用Collections.sort(list, comparator); 来进行比较。
上代码:
①
public static void main(String[] args) { List<HashMap<String, Object>> list = new ArrayList<HashMap<String,Object>>(); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("name", "gjk"); map.put("id", "1"); map.put("num", 45); list.add(map); HashMap<String, Object> map2 = new HashMap<String, Object>(); map2.put("name", "gjk2"); map2.put("id", "2"); map2.put("num", 60); list.add(map2); HashMap<String, Object> map3 = new HashMap<String, Object>(); map3.put("name", "gjk3"); map3.put("id", "3"); map3.put("num", 30); list.add(map3); // 打印出list中的值 // printList(list); ComparatorHashMap comparator=new ComparatorHashMap(); Collections.sort(list, comparator); System.out.println("after@@@@@@@@@"); // 打印出list中的值 // printList(list); }
其中比较类如下图,可以根据自己的业务需求进行更改:
②
public class ComparatorHashMap implements Comparator{ public int compare(Object arg0, Object arg1) { HashMap<String, Object> map = (HashMap<String, Object>)arg0; HashMap<String, Object> map2 = (HashMap<String, Object>)arg1; //首先比较出现次数,如果相同,则比较名字 Integer num = Integer.parseInt(map.get("num").toString()); Integer num2 = Integer.parseInt(map2.get("num").toString()); int flag = num2.compareTo(num); if(flag == 0){ return (map2.get("name").toString()).compareTo(map.get("name").toString()); }else{ return flag; } } }
③
排序涉及到正排序和倒排序,这个需要自己在自己的实现类里面来处理。如果是正排序就比较第一个值和第二个值;如果是倒排序,那么比较第二个值和第一个值,两个互相颠倒即可。
相关文章推荐
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- Java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序自定义方法
- Java借助反射实现自定义对象List的排序
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- JAVA中Collections.sort()实现List排序的公共方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java Collections.sort()实现List排序的默认方法和自定义方法
- java中利用Comparator接口实现自定义排序技巧。
- Java List 自定义排序
- 【LeetCode-面试算法经典-Java实现】【109-Convert Sorted List to Binary Search Tree(排序链表转换成二叉排序树)】
- java各种算法排序图解以及原码实现
- 链表的java实现以及基本的增加,删除,排序操作
- 直接插入排序以及java实现
- Java:集合,对列表(List)中的自定义对象按属性(字段)排序(正序、倒序)的方法