`
shitouweb
  • 浏览: 4442 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java中一个简单的Collections.sort对指定的人员按先后排序方法!

    博客分类:
  • java
阅读更多
使用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;
}
分享到:
评论

相关推荐

    java冒泡排序java冒泡排序集锦方法!

    `Collections.sort()` 是 Java 中一种快速且高效地对集合(如 ArrayList)进行排序的方法。可以自定义比较器来指定排序规则。 **示例代码分析**: ```java public class Main { public static void main(String[] ...

    java 中List按照date排序的实现

    Java提供了一个强大的工具类 Collections,它提供了sort方法来对List排序。同时,我们还需要使用Comparator接口来定义排序规则。在这个例子中,我们使用匿名内部类来实现Comparator接口: ```java Collections.sort...

    Android 中英文混合排序

    在Java中,我们可以使用`Collections.sort()`方法对List对象进行排序,但这个方法默认按照Unicode编码排序,对于中英文混合的情况并不适用。因此,我们需要自定义一个Comparator来完成这个任务。 1. **自定义...

    10个Java经典的List面试题

    List 可以使用自身的 sort 方法,或者使用 Collections.sort() 方法来排序。 9. Arrays.asList 方法后的 List 可以扩容吗? Arrays.asList 使用的是 final 数组,并且不支持 add 方法,不支持扩容。 10. List 和 ...

    java 集合和内部类资料

    例如,如何使用Collections.sort()方法对List进行排序,以及如何自定义比较器Comparator实现复杂排序逻辑。对于Map,你可以学习到如何遍历Map以及如何根据键或值进行排序。 `内部类`文件可能详细阐述了内部类的使用...

    java基础知识

    `Arrays.sort()`可以对数组进行排序,而`Collections.sort()`适用于集合。此外,Java标准库还包含各种排序算法,如快速排序、归并排序和插入排序。理解这些排序算法的工作原理,比如时间复杂度和稳定性,可以帮助...

    Collections工具类_动力节点Java学院整理

    Collections工具类是Java中一个功能强大的工具类,提供了大量针对Collection/Map的操作。下面我们将对该工具类进行详细的介绍。 排序操作 Collections工具类提供了多种排序操作,主要针对List接口相关。这些方法...

    泛型实例<匿名方法实现排序与查找>

    例如,你可以使用`Array.Sort()`或`List&lt;T&gt;.Sort()`方法,并传入一个匿名方法作为比较器,来决定元素的排序顺序。这使得我们能够在运行时动态指定排序规则,比如按年龄降序排列或者按名字升序排列。 例如: ```...

    关于排序算法 java代码

    - 希尔排序:是插入排序的改进版,通过插入排序的插入操作,但先将数组按一定间隔分组进行排序,逐步减小间隔,直到间隔为1,最后进行一次直接插入排序。 - 时间复杂度通常为O(n^2),但在部分有序的情况下,效率较...

    Java数组与集合

    例如,`Collections.sort(list)`可以对List接口的实现类进行排序,前提是列表中的元素实现了Comparable接口,或者在调用sort时传入自定义的Comparator。 在编程实践中,推荐使用集合接口而不是具体的实现类,这样...

    Lucene5学习之自定义排序

    在查询时,将这个`Sort`对象传递给`IndexSearcher`的`search()`方法,即可得到按价格排序的搜索结果。 除了基于字段的排序,Lucene还支持复合排序,即同时根据多个字段进行排序。例如,你可能希望先按价格排序,...

    Java中的数组

    数组是Java中一种重要的数据结构,它用于存储相同类型的数据集合。数组具有以下特点: 1. **数组是一种引用数据类型**:这意味着数组实际上是一个指向一组数据的引用。 2. **数组元素的类型一致性**:数组内的所有...

    Java数据结构和算法之Java数组

    例如,使用Java内置的`Arrays.sort()`方法对数组进行升序排序: ```java Arrays.sort(numbers); ``` 此外,数组还有查找操作。线性查找是最简单的,但效率较低,适用于小规模数据。二分查找适用于已排序的数组,...

    java对数组进行排序的方法

    本文将详细介绍Java中一种经典的排序算法——冒泡排序,并通过一个示例代码展示其使用方法。 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数组,比较相邻的元素并根据需要交换它们的位置。这个过程会一直...

    java中的Arrays这个工具类你真的会用吗(一文秒懂)

    `Arrays`类是Java中一个强大的工具,提供了一系列实用的方法来处理数组。理解和熟练使用这些方法可以极大地提升我们的编程效率,同时深入研究源码能进一步提升我们的编程能力,更好地理解和运用数组操作。

    Android ListView城市列表,按a-z分组字母索引排序

    在Java中,我们可以使用Collections.sort()方法,传入自定义的Comparator来实现这一目标。Comparator会比较两个城市的首字母,根据Unicode值进行升序排列。 为了实现字母分组,我们可以创建一个AlphabetIndexer类,...

    os_FCFS()().rar_FCFS JAVA_fcfs

    在`simulate()`方法中,我们首先按进程的到达时间对进程队列进行排序。然后,按照排序后的顺序依次处理每个进程。在处理每个进程时,我们需要模拟CPU的执行过程,这可能涉及到计算每个进程的剩余执行时间,以及更新...

    1_example.zip 第k个最小整数

    例如,Java的`PriorityQueue`类可以方便地实现优先队列,而`Collections.sort()`可以用于快速排序或冒泡排序。 为了分析和验证这些算法,你可以参考"排序查找最小的第k个数.docx"文档,它可能包含了具体的代码示例...

    无需继承的集合比较

    总的来说,`Comparator`是Java中一个强大的工具,它提供了在不改变原有类设计的情况下,实现自定义排序逻辑的能力,广泛应用于各种数据结构和算法中。在实际项目中,理解和熟练运用`Comparator`能极大地提高代码的...

    JAVA SE基础篇-资料整理

    2. **核心特性**:Java 具备许多核心特性,如简单性、面向对象、健壮性、安全性、可移植性、高性能、多线程支持等。 3. **开发环境**:Java 的开发环境主要包括 Java Development Kit (JDK) 和 Integrated ...

Global site tag (gtag.js) - Google Analytics