java-对已排序列表二次排序

问题描述

对已排序列表二次排序
有一个maps列表,已经通过一个顺序排好序了,不过还需要在这个基础上二次排序。
第一次排序:

Collections.sort(list new Comparator<Map<StringObject>>(){  @Override  public int compare(Map<String Object> m1Map<String Object> m2) {      return m1.get(""type"").toString().compareTo(m2.get(""type"").toString()); //type is a 1 or 0  }         });

现在在此基础上通过人的姓再次排序。是不是需要将这个列表的结果弄成一个列表,再通过这个列表排序?

我想的是复制一个SQL排序,可以实现type ASC lastName ASC

解决方案

用这个方法:

int compareType = m1.get(""type"").toString().compareTo(m2.get(""type"").toString());if(compareType != 0) {   return compareType;}return m1.get(""name"").toString().compareTo(m2.get(""name"").toString());

如果你有很多关键字来排序,用这种方法最简洁:

for(String key : new String[] { ""type""name"" }) {   int compare = m1.get(key).toString().compareTo(m2.get(key).toString());   if(compare != 0) {      return compare;   }}return 0;
时间: 2024-10-31 10:18:16

java-对已排序列表二次排序的相关文章

排序算法(Java)——那些年面试常见的排序算法

前言 排序就是将一组对象按照某种逻辑顺序重新排列的过程.比如信用卡账单中的交易是按照日期排序的--这种排序很可能使用了某种排序算法.在计算时代早期,大家普遍认为30%的计算周期都用在了排序上,今天这个比例可能降低了,大概是因为现在的排序算法更加高效.现在这个时代数据可以说是无处不在,而整理数据的第一步往往就是进行排序.所有的计算机系统都实现了各种排序算法以供系统和用户使用. 即使你只是使用标准库中的排序函数,学习排序算法仍然有很大的实际意义: - 排序算法往往是我们解决其他问题的第一步 - 排序

Java 8 比较器:如何对 List 排序

在本文中,我们将看到几个关于如何在Java 8中对List进行排序的例子. 按字母排序字符串列表 List<String> cities = Arrays.asList( "Milan", "london", "San Francisco", "Tokyo", "New Delhi" ); System.out.println(cities); //[Milan, london, San Fra

Java Map 按key排序和按Value排序的实现方法_java

一.理论准备 Map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等. TreeMap:基于红黑树(Red-Black tree)的 NavigableMap 实现,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法. HashMap的值是没有顺序的,它是按照key的HashCode来实现的,对于这个无序的HashMap我们要怎么来实现排序呢?参照TreeM

trinidad &amp;amp;lt;tr:table&amp;amp;gt;列表中列排序column sort,但排序后的记录rowkey值对应有错误,请给予帮助

问题描述 trinidad<tr:table>列表中列排序columnsort,如下代码:<tr:columnnoWrap="true"sortProperty="name"sortable="true"headerText="对方"width="10%"headerNoWrap="true"id="headerT3name"bandingShade

buffer-在下面的java程序中添加按照字母顺序排序,如何添加

问题描述 在下面的java程序中添加按照字母顺序排序,如何添加 package test1;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.regex.Matcher;import java.util.regex.Pattern; p

积分墙-广告列表积分大小排序

问题描述 广告列表积分大小排序 举例: 我想在一个列表里添加两个积分墙广告列表A和B, 现在需要对A和B里面的列表广告进行排序,积分高的就排在前面,积分低的就排在后面,我现在的思路是将A和B添加到一个大列表C里,然后对C整个排序,但是具体不知道怎么写了,因为我是根据积分列表里面对象的积分值字段进行比较大小的,有点搞不懂,不会写了,下面是我们的代码案例,求大神帮忙看看 List alist = new ArrayList(); List blist = new ArrayList(); List

Python中字典(dict)和列表(list)的排序方法实例_python

一.对列表(list)进行排序 推荐的排序方式是使用内建的sort()方法,速度最快而且属于稳定排序 复制代码 代码如下: >>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','a'

Java排序算法_选择排序

选择排序的基本操作就是每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完.算法不稳定,O(1)的额外的空间,比较的时间复杂度为O(n^2),交换的时间复杂度为O(n),并不是自适应的.在大多数情况下都不推荐使用.只有在希望减少交换次数的情况下可以用. 基本思想 n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果: ①初始状态:无序区为R[1..n],有序区为空. ②第1趟排序 在无序区R[1..n]中选出关键字最小的

javascript 二维排序表格代码_javascript技巧

二维排序表格   列1 列2 列3 列4 列5 列6 行1             行2             行3             行4             行5             说明: 1.排序功能:单击行表头或列表头则进行正序排序:若再次单击,则进行逆序: 2.修改功能:双击某个单元格,则可进行输入操作,当输入框失去焦点时,则新数据被保存: 3.随机功能:每次刷新页面,表格中的数据都不一样: