1. 程式人生 > >List集合實現自定義排序

List集合實現自定義排序

List自定義排序根據Collections.sort過載方法來實現,實現Comparable介面。

實現Comparator ,重寫compare方法。

public class DataSort implements Comparator<Student>{

	
	/**
	 * 重寫方法 實現自定義排序
	 */
	@Override
	public int compare(Student o1, Student o2) {
		int i = o1.getAge() - o2.getAge();//按照年齡排序(從小到大)   
        //年齡相等的情況下
		if(i == 0){  
            return 0;  
        }  
        return i;  
	}
	
	
	public static void main(String[] args) {
		List<Student> students = new ArrayList<Student>();  
        students.add(new Student(11));  
        students.add(new Student(21));  
        students.add(new Student(31));  
        students.add(new Student(22));  
        students.add(new Student(15));  
        students.add(new Student(27));  
        for(Student stu : students) {  
            System.out.println("age:" + stu.getAge());  
        }  
        Collections.sort(students,new DataSort());  //排序
        for(Student stu : students) {  
            System.out.println("age:" + stu.getAge());  
        }  	
	}
}

student類:

public class Student {
	  
    private int age;  
   
    public Student(int age) {
		super();
		this.age = age;
	}
	public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  

}



相關推薦

List集合實現定義排序

List自定義排序根據Collections.sort過載方法來實現,實現Comparable介面。 實現Comparator ,重寫compare方法。 public class DataS

java中實現Comparable接口實現定義排序

static -1 return rabl generated args logs ava sca 1 class Student implements Comparable{ 2 String name; 3 int gpa; 4 @Ov

Hadoop完全分散式用MapReduce實現定義排序、分割槽和分組

    經過前面一段時間的學習,簡單的單詞統計已經不能實現更多的需求,就連自帶的一些函式方法等也是跟不上節奏了;加上前面一篇MapReduce的底層執行步驟的瞭解,今天學習自定義的排序、分組、分割槽相對也特別容易。 認為不好理解,先參考一下前面的一篇:https://bl

spark中實現定義排序

排序的方式可以分為6中: (1)使用一個自定義一個普通的類繼承Ordered[User] with Serializable import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}

java的Comparable介面實現定義排序

除了利用資料庫的sql語句排序還可以利用java的Comparable介面自定義排序。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Emplo

Hadoop完全分散式下實現定義排序、分割槽和分組

    經過前面一段時間的學習,簡單的單詞統計已經不能實現更多的需求,就連自帶的一些函式方法等也是跟不上節奏了;加上前面一篇MapReduce的底層執行步驟的瞭解,今天學習自定義的排序、分組、分割槽相對也特別容易。 自定義排序 自定義的排序有許多許多,根據不同的業務需

Elasticsearch 實現定義排序外掛

外掛入口:   package ttd.ugc.plugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.ScriptModule; /** * Created by ji

.NET/C#中對定義物件集合進行定義排序的方法

一個集合可否排序,要看系統知不知道排序的規則,像內建的系統型別,int ,string,short,decimal這些,系統知道怎麼排序,而如果一個集合裡面放置的是自定義型別,比如自己定義了一個Car型別,要把它排序,系統是不知道怎麼辦的。 那麼,如何告知系統排序的規則

JAVA 利用Comparator實現定義排序

/* 有個Person類,包括姓、名、性別、年齡屬性:現在有個需求,需要對Person進行以下規則的排序  * 誰的姓拼音靠前,誰就排前面。  * 然後對名字進行排序。如果同名,女性排前頭。  * 如果名字和性別都相同,年齡小的排前頭。  * int compare(O

java實現定義排序實現Comparable介面)

        排序的演算法,大家都不陌生,有氣泡排序、選擇排序、插入排序,快速排序等等。如果現在有學生類,學校添加了很多學生,要你給學生按照學號大小排序,你會怎麼排? 學生類   Student {int stuID;    String stuName;   int sc

Spark2.x 如何實現定義排序(利用元組,類--隱式轉換Ordering,Ordered等實現

交流QQ: 824203453 需求: 對於有複雜排序條件的需求,可以利用自定義排序來實現,同時可以使用多種方案實現自定義排序需求。 對指定的資料(欄位分別為:名稱 年齡 顏值,資料以空格分割),按照指定的要求排序,排序要求為:根據顏值降序,如果顏值

【Java】Treeset實現定義排序

兩個類,一個學生類,含姓名和出生日期兩個屬性;還有一個學生排序類,重寫compare函式,自定義排序規則是先比較出生日期,如果相同再比較姓名字母 package birthday; import java.util.Calendar; public class Stud

java 兩種方式實現定義排序

package test; //Comparable 使物件本身具有可比性,這種方式稱為元素的自然順序或預設順序 //Comparator 元素自身不具備比較性或者比較性不是所需要的,在集合初始化讓其具有比較性 (更實用) import java.util.*; //cl

Java陣列排序中Comparator介面實現定義排序

1、為節點排序。節點由3個欄位組成,包括num ,weight ,height 。先按照weight升序排序,再按照height降序排序。 2、使用Comparator介面規則:編寫多個排序方式類實現Comparator介面,並重寫新Comparator介面中的compar

含有對象的List集合實現字母數字混合排序

gets 以及 實現 基本 ride man substring new 混合 List<PageData> varList = [{BOMCode=10A, mantotal=4}, {BOMCode=10B, mantotal=1}, {BOMCo

Collections定義List排序規則,進行定義排序

cti str targe collect dex pre div spa out //這裏的順序,是我自己定義的一個List<String> String[] regulation = {"諸葛亮","魯班","貂蟬","呂布"}; final List&l

Arrays.sort()定義排序實現

port margin tor urn 排列 util int ava 升序 1. Arrays.sort(T[] a)是對數組元素按字典序進行升序排列 import java.util.*; public class Main { public static

QSqlQueryModel定義排序實現

在QSqlQueryModel模型中,是不具備排序能力的,必須重寫其虛擬函式sort來實現排序,但是可以通過代理的方式來實現排序,具體實現方法核心程式碼如下: queryModel = new QSqlQueryModel(this); proxyModel = new QS

Map集合的遍歷方式以及TreeMap集合儲存定義物件實現比較的Comparable和Comparator兩種方式

Map集合的特點 1、Map集合中儲存的都是鍵值對,鍵和值是一一對應的 2、一個對映不能包含重複的值 3、每個鍵最多隻能對映到一個值上   Map介面和Collection介面的不同 Map是雙列集合的根介面,Collection是單列集合的根介面 1、Map是雙列的(是雙列集合的根介

定義UITableView實現定義左滑刪除按鈕及多按鈕,拖拽cell和表頭進行排序

本文介紹了能拖拽cell和表頭進行排序的自定義UITableView,並且能自定義左滑顯示的UIButton樣式。 先看左滑自定義按鈕效果圖  :     override func tableView(_ tableView: UITableView, editA