Collections.sort 重寫compare()方法
Comparator是個介面,主要比的是兩個物件,比較規則是自己寫的,可以重寫他的compare()和equals()這兩個方法,也就是說比較的方法。如果是Null的話,就是使用元素的自然順序,如1 3 2 4就是1 2 3 4 。字母也可以compare(a,b)方法:根據第一個引數小於、等於或大於第二個引數分別返回負整數、零或正整數。
Test.java
package com.djcken; import java.util.ArrayList; import java.util.Collections; import java.util.List; import com.djcken.UserBean.ComparatorUser; public class Test { public static void main(String[] args){ List userlist=new ArrayList(); userlist.add(new UserBean("d","1")); userlist.add(new UserBean("a","4")); userlist.add(new UserBean("e","5")); userlist.add(new UserBean("b","2")); userlist.add(new UserBean("f","5")); userlist.add(new UserBean("c","3")); userlist.add(new UserBean("g","6")); ComparatorUser comparator= new ComparatorUser(); Collections.sort(userlist, comparator); for (int i=0;i<userlist.size();i++){ UserBean user_temp=(UserBean)userlist.get(i); System.out.println(user_temp.getAge()+","+user_temp.getName()); } } }
UserBean.java
package com.djcken; import java.util.Comparator; public class UserBean { private String age; private String name; public UserBean(String age, String name) { super(); this.age = age; this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static class ComparatorUser implements Comparator{ public int compare(Object o1, Object o2) { UserBean user0 = (UserBean) o1; UserBean user1 = (UserBean) o2; int thislv = user0.getAge().compareTo(user1.getAge()); if (thislv == 0) { return user0.getName().compareTo(user1.getName()); } else { return thislv; } } } }
結果:
1,d
2,b
3,c
4,a
5,e
5,f
6,g
相關推薦
Collections.sort 重寫compare()方法
Comparator是個介面,主要比的是兩個物件,比較規則是自己寫的,可以重寫他的compare()和equals()這兩個方法,也就是說比較的方法。如果是Null的話,就是使用元素的自然順序,如1
List排序Collections.sort 重寫compare
1 static List<Integer> intList = Arrays.asList(2,5,7, 3, 1); 2 3 public static void main(String[] args) { 4 5
為什麼在重寫equals()方法時,一般都會重寫HashCode()方法?
重寫equals()方法主要是為了方便比較兩個物件內容是否相等。hashCode()方法用於返回呼叫該方法的物件的雜湊碼值,此方法將返回整數形式的雜湊碼值。 一個類如果重寫了 equals()方法,通常也有必要重寫 hashCode()方法,目的是為了維護hashCode()方法的常規協定,
重寫toString()方法
學習Java的人都知道,Java所有類都是object的子類。所以,所有的Java物件都可以呼叫object類提供的方法。其中,toString()就是其中一個。下面講解一下為什麼會有重寫toString()方法一說。 首先,我們先來建立一個Persion類,它只簡
Collections.sort()方法和lambda表示式結合實現集合的排序
1.使用Collections.sort()實現集合的排序,這裡的方法具體指的是: Collections.sort(List list, Compatator c) 第一個引數:為要進行排序的集合。 第二個引數:Compatator的實現,指定排序的方式。 2
java的Collections.sort()方法使用
conllections.sort()可以排序List、List、List<包裝類>,還可以是List<自定義的物件> (一)通過Collections.sort()方法,對i
ArrayList排序Sort()方法(轉)
ray list pro 簡單 read 排序 adl array 簡單的 //使用Sort方法,可以對集合中的元素進行排序。Sort有三種重載方法,聲明代碼如下所//示。 public void Sort(); //使用集合元素的比較方式進行排序 public vo
在定義類時,何時需要重寫Object類中equals()方法?
在比較兩個物件時可以使用==和 equals()。==用於比較兩個物件的引用地址是否相等,而equals()方法主要用於比較兩個物件的內容是否相等。和equals()的差別請參見“和equals()有什麼區別?”的解答。 在 Object 中已定義了 equals()方法,但是該方法直接採用
初學者對js中sort()方法的理解。
定義和用法 sort() 方法用於對陣列的元素進行排序。 語法 arrayObject.sort(sortby) 引數 描述 sortby 可選。規定排序順序。必須是函式。 返回值 對陣列的引用。請注意,陣列在原陣列上進行排序,不生成副本。 說明 如果
js中sort()方法的用法,引數以及排序原理
sort() 方法用於對陣列的元素進行排序。 語法:arrayObject.sort(sortby);引數sortby可選。規定排序順序。必須是函式。 注:如果呼叫該方法時沒有使用引數,將按字母順序對陣列中的元素進行排序,說得更精確點,是按照字元編碼的順序進行排序。要實現這一點,首先應把陣列的元素都轉換成字
通過重寫Thread的run()方法顯示新執行緒
前面提到過有一種Runnable介面顯示執行緒的方法,還有一種是通過重寫Thread的run()方法顯示的: 首先定義一個類繼承Thread類,然後重寫run()方法 public class TestThread { public static void main(
Java中關於==和equal的區別以及equals()方法重寫
例子i: string1="aaa"; string2="aaa"; String string3=new String("aaa"); String string4=new String("aaa"); string1==string2 // true; . string1.equals(string2)
js寫css()方法,記得加引號“ ”,除非是數字
pos 引號 index size z-index roi absolut fff dex js寫css()方法,記得加引號“ ”,除非是數字。如: $("#android").css({ "position": "absolute", "z-index":
ArrayList中remove()方法刪除長度大於5的元素之後下標重定位的問題
com 有一個 fad 就刪除 成了 位置 p s cnblogs 中心 1、問題闡述 需求: 有一個ArrayList數組,要求刪除長度大於5的字符串,如:arr = {"ab1","123ad","bca","dadfadf","dddaaa","你好啊","我來
== 與 equals()方法的區別
return 使用 自定義類 [] true 適用於 內容 lean 編譯 * equals()方法的使用 * * 1.java.lang.Object類中的equals()方法的定義: * * public boolean equals(Object obj
createTextNode() 方法和createTextNode()方法
script 屬性 tno tle html creat uno 按鈕 文本節點 <!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鳥教程(runoo
seek()方法的使用
sheng aaa pla () 有時 lose ans adding ati seek()方法用於移動文件讀取指針到指定位置。 file.seek()方法標準格式是:file.seek(offset,whence) offset:開始的偏移量,也就是代表需要移動偏
使用seek()方法報錯:“io.UnsupportedOperation: can't do nonzero cur-relative seeks”錯誤的原因
pac nbsp mar std orm ack logs 打開文件 off 在使用seek()函數時,有時候會報錯為 “io.UnsupportedOperation: can‘t do nonzero cur-relative seeks”,代碼如下: >&g
Java集合框架上機練習題:編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable接口,在接口的compareTo()方法.....
ext .cn 數據庫 識別 方法 屬性 set package compareto 編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable接口,在接口的compareTo()方法中規定兩個Book類實例的大小關系為二者的price屬性的
關於vlookup()方法的使用
精準 相同 lookup div 其他 nbsp 公式 class 步驟 問題: A表中A列與B表中的A列作對比,相同的,將B表的B列放到A表的b列上 如: A表 A B 張三 歷史 王五 化學 地理 B表 A B 張三