List集合使用Comparator 排序優先順序
Comparator 對物件排序的優先順序的定義:
返回的數字越大排名越靠前
eg:一個物件有三個屬性,年齡,工資,銷售量
如果設定一個排序規則,
優先排序規則:
年齡從小到大、
工資從大到小
銷量從高到底
該怎麼排
下面插入程式碼,先定義一個類
class User { private int age; private int salary; private int sales; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getSalary() { return salary; } public void setSalary(int salary) { this.salary = salary; } public int getSales() { return sales; } public void setSales(int sales) { this.sales = sales; } public User(int age,int salary,int sales) { super(); this.age = age; this.salary = salary; this.sales = sales; } @Override public String toString() { return "User [age=" + age + ", salary=" + salary + ", sales=" + sales + "]"; } }
寫一個測試類:
public class ComparatorTest { public static void main(String[] args) { User u1 = new User(11, 22, 33); User u2 = new User(11, 22, 34); User u3 = new User(11, 22, 35); User u4 = new User(21, 22, 33); User u5 = new User(31, 22, 33); User u6 = new User(41, 22, 33); User u7 = new User(51, 220, 33); User u8 = new User(51, 222, 33); User u9 = new User(51, 226, 77); User u10 = new User(51, 226, 33); User u11 = new User(11, 22, 33); List<User> ulist = new ArrayList<User>(); ulist.add(u11); ulist.add(u10); ulist.add(u9); ulist.add(u8); ulist.add(u7); ulist.add(u6); ulist.add(u5); ulist.add(u4); ulist.add(u3); ulist.add(u2); ulist.add(u1); Collections.sort(ulist, comparator);//呼叫Comparator for (User user : ulist) { System.out.println(user); } } public static Comparator<User> comparator = new Comparator<User>() { @Override public int compare(User o1, User o2) { // 優先排序規則: // 年齡從小到大、 // 工資從大到小 // 銷量從高到底 int a = o1.getAge() - o2.getAge(); if (a != 0) { return a > 0 ? 3 : -1;// } else { a = o2.getSalary() - o1.getSalary(); if (a != 0) { return a > 0 ? 2 : -2; } else { return o2.getSales() - o1.getSales() > 0 ? 1 : -3; } } } }; } }
輸出結果:
User [age=11, salary=22, sales=35] User [age=11, salary=22, sales=34] User [age=11, salary=22, sales=33] User [age=11, salary=22, sales=33] User [age=21, salary=22, sales=33] User [age=31, salary=22, sales=33] User [age=41, salary=22, sales=33] User [age=51, salary=226, sales=77] User [age=51, salary=226, sales=33] User [age=51, salary=222, sales=33] User [age=51, salary=220, sales=33]
轉載:https://www.cnblogs.com/dayu007/p/7692348.html
相關推薦
List集合使用Comparator 排序優先順序
Comparator 對物件排序的優先順序的定義:返回的數字越大排名越靠前eg:一個物件有三個屬性,年齡,工資,銷售量如果設定一個排序規則,優先排序規則:年齡從小到大、工資從大到小銷量從高到底該怎麼排下面插入程式碼,先定義一個類class User { private
對List集合進行排序
ons etag span bsp -s str int tor vat 一、說明 使用Collections工具類的sort方法對list進行排序 新建比較器Comparator 二、代碼 排序: import java.util.ArrayList; import
List集合的排序
List集合的排序 1.對基本型別的包裝型別進行排序 @Test public void test01() { List<Integer> list = new ArrayList<>(); list.add(3); list.add(2);
List集合序列排序的兩種方法
首先講一下Comparable介面和Comparator介面,以及他們之間的差異。有助於Collections.sort()方法的使用。請參考 1.Comparable自然規則排序//在自定義類Student裡面實現Comparable介面,並重寫抽象方法compareTo(Student o);//Col
合併兩個list集合並且排序
集合合成的話List<Article> list1 = new ArrayList<Article>(); /*.....新增資料.......*/List<Articl
List集合根據Map裡某個key對List集合重新排序介紹
例1:List集合資料參考形式如下: [{GLXXLX=03,GLXXBH=20160226105812003},{GLXXLX=01,GLXXBH=20160226105812001},{GLXXLX=02,GLXXBH=20160226105812002}
Android中list集合的排序方法
Collections對List集合中的資料進行排序 有時候需要對集合中的元素按照一定的規則進行排序,這就需要用到 Java中提供的對集合進行操作的工具類Collections,其中的sort方法 先看一個簡單的例子: [java] view plain copy print?publicstati
Java中對list集合進行排序
原文連結 /** * 根據order對User排序 */ public class User { //此處無需實現Comparable介面 private String name; private Integer order; public Str
淺談在java中list集合的排序問題
定義實體類: public class Person { private Integer id; private String name; private Integer age; public Integer get
【轉載】C#中使用OrderBy和ThenBy等方法對List集合進行排序
derby 轉載 排序。 sha esc ews 個人 類的定義 orderby 在C#的List操作中,針對List對象集合的排序我們可以使用OrderBy、OrderByDescending、ThenBy、ThenByDescending等方法按照特定的對象屬性進行排序
java list集合使用Collections中的sort方法進行排序(Comparator),超實用
在java中有沒有遇到對list集合進行排序,其實很簡單的,需要集合類Collections中sort方法 public static <T> void sort(List<T&g
含有對象的List集合實現字母數字混合排序
gets 以及 實現 基本 ride man substring new 混合 List<PageData> varList = [{BOMCode=10A, mantotal=4}, {BOMCode=10B, mantotal=1}, {BOMCo
list集合如何對裏面的元素進行排序
匿名 src .cn .so com image turn cnblogs 公共類 Collections 是集合的公共類,提供各種工具,其中提供了排序方法。 Collections.sort(),方法兩個參數,1,要排序的集合,2.排序方式 下面是匿名內部類,實現了排序借
Java中List集合排序的方法 比較器的使用 根據學生對象數序 語文 英語成績總和進行sort排序
private system.in set swift ringbuf 直觀 turn @override encoding package com.swift; import java.util.ArrayList; import java.util.Collecti
根據List集合中的對象屬性排序
his return nts 類型 sin 屬性 ppr 圖片 compareto 首先創建一個Student對象,裏面有三個屬性,分別是int類型,String類型,Date類型 package com.sinoway.cisp.test; import java.t
List集合元素的計算、排序、查找、統計
List集合 元素 計算、排序、查找、統計 引入:針對List元素的計算、排序、查找、統計。1)計算(max,min,sum)示例1:list01=[45, 90, 123, 987, -18, 78, 96]print("list01的最小值:",min(list01))pr
通過Java排序List集合的元素的幾種方法
諸葛 rtt program pac tco getc lis asi new 用Java工具類Collections的sort()方法,對List集合元素進行排序。 Collections提供兩種排序方法: 一、Collections.sort(List<T>
2018.9.26 如何對List集合中的元素進行排序?
lec str 有時 etag gets sets ava int private Collections對List集合中的數據進行排序 有時候需要對集合中的元素按照一定的規則進行排序,這就需要用到 Java中提供的對集合進行操作的工具類Collections,其中的sor
java List Collections 根據時間對List集合內的元素排序
按時間正序排序。 核心程式碼 List<Folderfile> folderfiles = new ArrayList<>(); ...往集合裡新增元素此處省略..... Collections.sort(folderfiles, new Comparator
List集合排序的實現
list集合排序的實現 根據物件屬性進行排序 簡單說明一下:對list集合中的User進行排序,根據其姓名和年齡進行排序。直接看程式碼,User類我就不寫了 public class ListSort { public static void main(String[] a