使用Collections.sort对查询到的list按指定的人员先后顺序进行排序:
/**
* 描述:使用Collections.sort 对list进行指定排序
* <br/>
* @author shitou
*/
public void sortByTargetName(List<ZhsjydbYXGZFItem> list){
Collections.sort(list, new Comparator<ZhsjydbYXGZFItem>(){
Map<String, Integer> map = getNameMap();
public int compare(ZhsjydbYXGZFItem o1, ZhsjydbYXGZFItem o2) {
Integer i1 = map.get(o1.getUserid()); //取不到会返回 null
Integer i2 = map.get(o2.getUserid()); //取不到会返回 null
// 取不到则表示对此人员不进行排序,赋一个高点的值(排列在后面)
if(i1 == null) i1 = 99;
if(i2 == null) i2 = 99;
return i1 - i2;
}
});
}
/**
* 描述:需求进行排序的人员Map<姓名, 排序值>
* 排序值小的排列在前面
* <br/>
* @author shitou
* @return Map<String,Integer>
*/
public Map<String, Integer> getNameMap(){
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("张三", 1);
map.put("李四", 2);
map.put("王二", 3);
map.put("刘五", 4);
return map;
}
再贴另一种排序,也是使用Map :
/**
* 描述:按名字对list进行排序
* <br/>
* @author shitou
* @param list
* @param arrName 排序的名字数组
* String []arrName = {"高孟平","杨强","胡劲松","李文云","段光","蔡葆锐"}; // 排序的数组,先后排序排列
* @return List<ZhsjydbYXGZFItem>
*/
public List<ZhsjydbYXGZFItem> sortByTargetName(List<ZhsjydbYXGZFItem> list, String[] arrName){
if(list == null || list.size() <= 0) return list;
Map<String, ZhsjydbYXGZFItem> map = new HashMap<String, ZhsjydbYXGZFItem>();
for (int i = 0; i < list.size(); i++) {
ZhsjydbYXGZFItem item = list.get(i);
if(arrName[0].equals(item.getUserid())){
map.put("A" + i, item);
}else if(arrName[1].equals(item.getUserid())){
map.put("B" + i, item);
}else if(arrName[2].equals(item.getUserid())){
map.put("C" + i, item);
}else if(arrName[3].equals(item.getUserid())){
map.put("D" + i, item);
}else if(arrName[4].equals(item.getUserid())){
map.put("E" + i, item);
}else if(arrName[5].equals(item.getUserid())){
map.put("F" + i, item);
}else{
map.put("G" + i, item);
}
}
Object []arrObj = map.keySet().toArray();
Arrays.sort(arrObj);
List<ZhsjydbYXGZFItem> resutlList = new ArrayList<ZhsjydbYXGZFItem>();
for(int i = 0; i < arrObj.length; i++){
resutlList.add(map.get(arrObj[i].toString()));
}
return resutlList;
}
分享到:
相关推荐
NULL 博文链接:https://xuedong.iteye.com/blog/1147254
主要介绍了Java Collections.sort()实现List排序的默认方法和自定义方法,需要的朋友可以参考下
主要介绍了Java Arrays.sort和Collections.sort排序实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了java中Collections.sort排序详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
主要介绍了JAVA对list集合进行排序Collections.sort(),需要的朋友可以参考下
本文通过两种方法给大家介绍java集合中的Collections.sort方法对list排序,第一种方式是list中的对象实现Comparable接口,第二种方法是根据Collections.sort重载方法实现,对collections.sort方法感兴趣的朋友一起...
本篇文章主要介绍了java中Collections.sort排序函数用法详解,非常具有实用价值,需要的朋友可以参考下。
Comparator是个接口,可重写compare()及equals()这两个方法,接下来通过本文给大家介绍Java中Collections.sort排序,需要的的朋友参考下吧
主要介绍了Java Collections.sort()排序代码案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...
主要介绍了JAVA中Collections工具类sort()排序方法,非常具有实用价值,需要的朋友可以参考下。
在 Java 中,对列表进行排序的最快方法是使用Collections.sort()方法,该方法使用的排序算法是 Timsort,它是归并排序和插入排序的结合体,具有高效的性能和稳定性。 在上述代码中,使用了 Comparator 接口来实现...
主要介绍了详解java Collections.sort的两种用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
Java 中的 Arrays 类提供了对这些类型的 sort 方法,可以用来对简单类型的数组进行排序。例如: ```java int[] arr = {2, 3, 1, 10, 7, 4}; System.out.print("before sort: "); for (int i = 0; i < arr.length; i...
在 Java 中,存在多种方法来对给定数组进行降序排序。 1. 使用 Collections.reverseOrder() 方法 可以通过将数组和 Collections.reverseOrder() 作为参数传递给 Arrays.sort(),来对数组元素进行降序排序。需要...
本文实例讲述了Python3实现对列表按元组指定列进行排序的方法。分享给大家供大家参考,具体如下: Python版本: python3.+ 运行环境: Mac OS IDE: pycharm Python内建的排序方法 1 排序方法介绍 Python中有2个...
利用 Array.Sort()函数对数组排序,c#写的简单控制台应用程序
JAVA SortList 通用排序类 从网上搜到一个java 对 List 排序的工具,自己改了下 支持 整数 和 浮点数 比较后排序,浮点数小数部分的有点问题,期待大牛帮忙优化。
字符串数组 排序
Android利用Collections.sort()对Map里的键值对按照键进行排序,让listview按序显示