Comparable介面排序
實現Comparable介面,並實現該介面下的compareTo()方法, 再使用Collections.sort()重新排序,就可以得到自己想要的順序。
public class UserInfo implements Comparable<UserInfo> { private String userName; private int userAge; public UserInfo(String userName, int userAge) { this.userName = userName; this.userAge = userAge; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getUserAge() { return userAge; } public void setUserAge(int userAge) { this.userAge = userAge; } @Override public int compareTo(UserInfo o) { return this.userAge - o.getUserAge(); } } public static void main(String[] args) { UserInfo user2 = new UserInfo("22", 22); UserInfo user1 = new UserInfo("20", 20); UserInfo user3 = new UserInfo("24", 24); ArrayList<UserInfo> userList = new ArrayList<UserInfo>(); userList.add(user1); userList.add(user2); userList.add(user3); Collections.sort(userList); for (UserInfo userInfo : userList) { System.out.println(userInfo.getUserName()); } }
java.util.Collections是一個包裝類,它包含各種集合相關的操作的靜態多型方法,次類不能例項化,
它就相當於一個工具類。
需要注意的是,java.util.Collection是一個集合的介面,雖然兩個只是相差一個s,但是功能完全不一樣。
在Collections的sort()方法中,如果使用者實現了Comparable介面,該工具類將直接呼叫重寫的compareTo方法。Collections中的sort()方法的實現是:public static <T extends Comparable<? super T>> void sort(List<T> list) { Object[] a = list.toArray(); Arrays.sort(a); ListIterator<T> i = list.listIterator(); for (int j = 0; j < a.length; j++) { i.next(); i.set((T) a[j]); } }
相關推薦
Comparable介面 排序
compareTo返回值為-1 、 1 、 0 的排序問題 1.什麼是Comparable介面 此介面強行對實現它的每個類的物件進行整體排序。此排序被稱為該類的自然排序 ,類的 compareTo 方法被稱為它的自然比較方法 。實現此介面的物件列表(和陣列)可以通過 Collection
Comparable介面排序
實現Comparable介面,並實現該介面下的compareTo()方法, 再使用Collections.sort()重新排序,就可以得到自己想要的順序。 public class UserInfo implements Comparable<UserInfo>
JAVA 利用Arraylist.sort()進行排序的實現。(comparable介面的實現)
1.什麼是Comparable介面 此介面強行對實現它的每個類的物件進行整體排序。此排序被稱為該類的自然排序 ,類的 compareTo 方法被稱為它的自然比較方法 。實現此介面的物件列表(和陣列)可以通過 Collections.sort (和 Arrays.sort )進行自動排序。實現此介面的
java的Comparable介面實現自定義排序
除了利用資料庫的sql語句排序還可以利用java的Comparable介面自定義排序。 import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Emplo
Java中類的比較與排序方法(應用Comparable介面與Comparator介面)
引言 在平時寫Java的程式的時候,如果要進行一些基本型別的變數的比較,可以很方便得呼叫’Math.max()’、Math.min()等方法,如果要對陣列或者列表進行排序,也可以用Arrays.sort()和Collections.sort()等已經封裝好的方法來進行。但是,如果是一個自
Comparable介面實現集合的排序
1.讓需要排序的物件實現Comparable介面,並重寫compareTo方法 public class Student implements Comparable<Student> { //泛型為需要排序的物件
關於Comparable介面和Comparetor介面的兩種排序
Comparable介面 TreeSet:實現去重和排序的方式:1.讓元素去實現Comparable介面,重寫compareTo方法 public class Demo { public static void main(String[] args) {
程式實現對資料排序並按出現次數進行排序 程式實現對資料排序並按出現次數進行排序(注:用面向物件的方式實現,用for迴圈進行排序,別用comparable介面實現){1,4,2,1,3,2,1,4}作為
程式實現對資料排序並按出現次數進行排序 程式實現對資料排序並按出現次數進行排序(注:用面向物件的方式實現,用for迴圈進行排序,別用comparable介面實現){1,4,2,1,3,2,1,4}作為引數(引數可變)傳入java方法中,控制檯輸出以下結果 1出現了3次 2出現了2次
ArrayList容器排序 comparator介面與comparable介面的使用
1、實體類實現comparable介面,重寫compareTo方法 package io; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDate
Arrays.sort排序方法以及Comparator和Comparable介面的作用
有的時候需要對數組裡的element進行排序。當然可以自己編寫合適的排序方法,但既然Java包裡有自帶的Arrays.sort排序方法,在陣列元素比較少的時候為何不用? Sorting an Array 1. 數字排序 int[] intArray = new i
物件排序,實現comparable介面
定義: Comparable & Comparator 都是用來實現集合中的排序的,只是 Comparable 是在集合內部定義的方法實現的排序,Comparator 是在集合外部實現的排序,所以,如想實現排序,就需要在集合外定義 Comparator
java實現自定義排序(實現Comparable介面)
排序的演算法,大家都不陌生,有氣泡排序、選擇排序、插入排序,快速排序等等。如果現在有學生類,學校添加了很多學生,要你給學生按照學號大小排序,你會怎麼排? 學生類 Student {int stuID; String stuName; int sc
實現Comparable介面,把物件按優先順序進行排序
在讀《efficitive java》第12條:考慮實現Comparable介面 使用Comparable介面按物件按屬性的優先順序排序還是比較方便的 例項程式碼 package com.ct
Java排序 Comparable(實現Comparable介面)
1、首先新建第一個Student類/** * 排序測試 通過實現Comprable的compareTo方法進行排序 */public class Student implements Comparable<Student>{ private String n
java 對ArrayList排序,實現Comparable介面
import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io
Java中實現Comparable介面和Comparator介面的排序演算法效率比較
在PAT Basic Level的真題中,有”德才論“這麼一題(點選可開啟題目)。 最開始我是構造了一個學生類,存放學生資訊,實現Comparator介面,遺憾的是,後臺測試時,每一個測試用例皆顯示程式執行超時。 public class Main ... class S
物件排序之Comparator,Comparable介面區別(華為面試題)
給了個類,要求編寫一段程式碼,給以下型別的資料排序(按index降序排): public class A{ public int index ; public String str; public …… ; } 條件: 1.資料量很大,要求效能夠; 2.擴充套件性好:按其他資料型別(如 Stri
Java程式設計之TreeSet排序兩種解決方法(1)元素自身具備比較功能,元素需要實現Comparable介面覆蓋compare(2)建立根據自定義Person類的name進行排序的Comparator
當很多人問我讀研到底好不好的時候,我總是說上研很苦逼,讀完研之後都不知道自己能不能找到工作,所以不建議同學們讀研~即使要讀也讀一個985或者211的研究生,這是我肺腑之言。但還有一半我沒說完,讀研的時候你可能會找到你喜歡的活動,會遇到一些願意和你一起玩的玩伴,
javaBean實現Comparable介面後排序
今天在做專案時,需要根據序號排序,然而序號是在java中通過邏輯處理賦值的並不是直接在sql中通過order by 解決的;而ArrayList沒有實現Comparable介面,不能實現按需要排序; <span style="font-family:Microsof
重寫hashcode和equals方法,以及加入treeset實現comparable介面重寫compareTo方法
package Interview; import java.util.*; class People implements Comparable<People> { public String name; public int age; public People(Str