首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java中的list自定义排序以及倒排序的兑现

2013-01-26 
java中的list自定义排序以及倒排序的实现涉及知识点:如标题大神可以一笑而过~~~今天进行数据处理,把处理过

java中的list自定义排序以及倒排序的实现

涉及知识点:如标题

大神可以一笑而过~~~


今天进行数据处理,把处理过的数据存放在List()中,list中的元素为HashMap<String,Object>

其中元素map中有三个键值对id,name,num.

主要处理每种元素出现的次数,后面的num就是出现的次数。


需求是想要把出现次数较多的数据排在前面。

需要自己写一个比较类,实现java.util.Comparator 接口。

使用Collections.sort(list, comparator); 来进行比较。


上代码:


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;  }   }}


排序涉及到正排序和倒排序,这个需要自己在自己的实现类里面来处理。如果是正排序就比较第一个值和第二个值;如果是倒排序,那么比较第二个值和第一个值,两个互相颠倒即可。

热点排行