1. 程式人生 > >利用apache的commons對list重新排序

利用apache的commons對list重新排序

主要是apache-commons-beanutils-1.8.3.jar、collections、logging包

public void sortList(){
        List<Map<String, String>> sjzList = new ArrayList<Map<String, String>>();
        Map<String, String> map1 = new HashMap<String, String>();
        map1.put("TIME", "20160225");
        map1.put("CONTENT", "測試內容2");
        Map<String, String> map2 = new HashMap<String, String>();
        map2.put("TIME", "20160225");
        map2.put("CONTENT", "測試內容1");
        Map<String, String> map3 = new HashMap<String, String>();
        map3.put("TIME", "20160223");
        map3.put("CONTENT", "測試內容3");
        sjzList.add(map1);
        sjzList.add(map2);
        sjzList.add(map3);
        for (Map<String, String> map : sjzList) {
            System.out.println("排序前:"+map.get("TIME")+":"+map.get("CONTENT"));
        }
        Comparator mycmp1 = ComparableComparator.getInstance();
        mycmp1 = ComparatorUtils.reversedComparator(mycmp1); //逆序
        mycmp1 = ComparatorUtils.nullHighComparator(mycmp1); // 允許null
        Comparator mycmp2 = ComparableComparator.getInstance();
        mycmp2 = ComparatorUtils.nullHighComparator(mycmp2); // 允許null

        // 宣告要排序的物件的屬性,並指明所使用的排序規則,如果不指明,則用預設排序
        ArrayList<Object> sortFields = new ArrayList<Object>();
        sortFields.add(new BeanComparator("TIME", mycmp1)); // 主排序(第一排序)
        sortFields.add(new BeanComparator("CONTENT", mycmp2)); // 次排序(第二排序)

        // 建立一個排序鏈
        ComparatorChain multiSort = new ComparatorChain(sortFields);

        // 開始真正的排序,按照先主,後副的規則
        
        Collections.sort(sjzList, multiSort);

        System.out.println("------分割線----------");
        for (Map<String, String> map : sjzList) {
            System.out.println("排序後:"+map.get("TIME")+":"+map.get("CONTENT"));
        }
    }

輸出結果:

排序前:20160225:測試內容2
排序前:20160225:測試內容1
排序前:20160223:測試內容3
------分割線----------
排序後:20160225:測試內容1
排序後:20160225:測試內容2
排序後:20160223:測試內容3

相關推薦

利用apache的commonslist重新排序

主要是apache-commons-beanutils-1.8.3.jar、collections、logging包 public void sortList(){         List<Map<String, String>> sjzList

Java中Lamda表示式List進行排序

public class MainTest { public static void main(String[] args) { List<String> list = Arrays.asList( "2018121207","2018121206","2018121

Kotlinlist進行排序的一種方法

今天看了java排序的方法,自己用kotlin寫了一個小的list的排序,程式碼如下。 1.首先定義一個內部類,用於比較list中兩個數的大小 inner class User : Comparable<User> { var name: String

List進行排序

/** * 對List<Map>進行排序 */private List<Map<String, Object>> OrderBytoList(List<Map<String, Object>> mlist) {My

學習Collectionslist排序

import java.util.ArrayList; import java.util.Collections; import java.util.List; import com.entyty.User; public class ces {     public static void main(Str

java collection.sort() 根據物件的某個屬性list進行排序

1基本型別的list排序/** * 對List物件按照某個成員變數進行排序 * @param list List物件 * @param sortField 排序的屬性名稱 * @param sortMode 排序方式:ASC,DESC 任選其

OutSystems 中,利用聚合結果進行排序

大多數情況下,記錄會按照某些順序列在螢幕上,以便於閱讀或幫助更快地查詢資訊。 在 OutSystems 中,聚合允許對返回的記錄進行排序,排序可以是固定的或動態的。 對結果進行固定排序: 在聚合中,開啟要排序的屬性選單; 選擇A-Z作為升序或Z-A作為降序;

利用setlist進行合併去重

set是不重複的集合,可以使用set對有重複的幾ist集合進行合併 List<PageData> listnew = new ArrayList<PageData>();

使用Java8新特性List進行排序

前言: 在專案開發中往往會遇到各種資料需要排序展示在頁面上,常見的從資料庫查使用資料庫的排序,還有一種就是使用我們的開發語言進行排序,這裡給大家演示使用java8的新特性進行排序,眾所周知java8帶來了函數語言程式設計和Lambda表示式等新特性,下面我們就開始演示了:

C# 中使用Linq和Lambda表示式List進行排序

C#中List<T>排序的兩種方法 List<Student> stu = (List<Student>)Session["StudentList"]; Lin

javaLIst排序

println this pan ons set ring oid getname arraylist 準備排序的實體類 public class Student { private Integer index; private String name

List集合根據Map裡某個keyList集合重新排序介紹

例1:List集合資料參考形式如下: [{GLXXLX=03,GLXXBH=20160226105812003},{GLXXLX=01,GLXXBH=20160226105812001},{GLXXLX=02,GLXXBH=20160226105812002}

C#如何List中的Object進行排序

過多 code same ascend 多個 delegate del object compareto 首先定義一個List類,這個類裏面包含了Name和Total兩個屬性變量,下面就是針對這兩個變量進行排序。 public class Player { pub

list象進行排序

size 進行 com vol find ret 所有 compareto () List<LjlSevOrdersVO> list = ljlSevOrdersService.findSevForOrders(ljlSevOrdersVO); //查出所有

C++primer 容器元素重新排序

out clas gin txt 重新 urn ras tle prime 1 #include<iostream> 2 #include<string> 3 #include<algorithm> 4 #include<

Java中List集合排序的方法 比較器的使用 根據學生象數序 語文 英語成績總和進行sort排序

private system.in set swift ringbuf 直觀 turn @override encoding package com.swift; import java.util.ArrayList; import java.util.Collecti

[C#] List進行分組排序後輸出

pos 學生 new C# src key 輸出 分組 groupby Student 類: public class Student { public int ID { get; set; } public string

根據List集合中的象屬性排序

his return nts 類型 sin 屬性 ppr 圖片 compareto 首先創建一個Student對象,裏面有三個屬性,分別是int類型,String類型,Date類型 package com.sinoway.cisp.test; import java.t

Java List中每個象元素按時間順序排序

排序 排列 static collect AR AI imp pub main  import java.util.Collections; import java.util.LinkedList; import java.util.List; public

collections.sortjavabean的list進行排序

collection.sort javabean 1、collection.sort排序算法底層實際是 將集合轉換成array,再執行arrays.sort,arrays.sort利用歸並排序,優化的快排,timSort等方式。2、對string類型數據排序public static void col