java對(duì)ArrayList排序代碼示例
更新時(shí)間:2015年11月13日 11:46:31 作者:sunmenggmail
本文通過(guò)代碼示例給大家介紹java對(duì)arraylist排序,代碼簡(jiǎn)潔易懂,感興趣的朋友一起學(xué)習(xí)吧
不廢話了,直接給大家貼代碼了。
class term {
String str;
int id;
public term(String str, int id) {
this.str = str;
this.id = id;
}
public String toString() {
return str+" "+id;
}
}
class sterm implements Comparable{
String str;
int id;
public sterm(String str, int id) {
this.str = str;
this.id = id;
}
public int compareTo(Object o) {
return ((sterm)o).id - id;
}
public String toString() {
return str+" "+id;
}
}
//method1: explicit implements Comparator
class termComparator implements Comparator {
public int compare (Object o1, Object o2) {
return ((term)o1).id - ((term)o2).id;
}
}
public class t1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// ArrayList<Integer> arr = new ArrayList<Integer>( Arrays.asList(3,1,3,7,8,0));
//
// Collections.sort(arr, new Comparator(){
//
// public int compare(Object o1, Object o2){
// return new Double((Integer)o1).compareTo(new Double ((Integer)o2));
// }
// });
//method1
List<term> ls = new ArrayList<term>();
ls.add(new term("a",1));
ls.add(new term("b",5));
ls.add(new term("c",2));
ls.add(new term("d",2));
ls.add(new term("e",3));
ls.add(new term("f",0));
Collections.sort(ls, new termComparator());
System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5]
//method2: anonymous implements
Collections.sort(ls, new Comparator(){
public int compare(Object o1, Object o2){
return ((term)o2).id - ((term)o1).id;
}
});
System.out.println(ls);//[b 5, e 3, c 2, d 2, a 1, f 0]
//method3:instantiate a Comparator template
Comparator<term> termCmp = new Comparator<term>() {
public int compare(term t1, term t2) {
return t1.id - t2.id;
}
};
Collections.sort(ls, termCmp);
System.out.println(ls);//[f 0, a 1, c 2, d 2, e 3, b 5]
//method4:element implements Comparable
List<sterm> lss = new ArrayList<sterm>();
lss.add(new sterm("a",1));
lss.add(new sterm("b",5));
lss.add(new sterm("c",2));
lss.add(new sterm("d",2));
lss.add(new sterm("e",3));
lss.add(new sterm("f",0));
Collections.sort(lss);
System.out.println(lss);//[b 5, e 3, c 2, d 2, a 1, f 0]
}
}
PrioriyQueue的用法和上述的排序類似,有三種方法:
class WordFreq implements Comparable{
public String wd;
public int freq;
public WordFreq(String wd, int freq) {
this.wd = wd;
this.freq = freq;
}
public int compareTo(Object o) {
return ((WordFreq)o).freq - freq;
}
public String toString() {
return wd+" "+freq;
}
}
public class testt {
public static void main(String[] args) {
// TODO Auto-generated method stub
PriorityQueue<WordFreq> pq = new PriorityQueue<WordFreq>();
pq.offer(new WordFreq("aaa", 3));
pq.offer(new WordFreq("bbb", 4));
pq.offer(new WordFreq("ccc",1));
while(pq.peek() != null) {
System.out.println(pq.poll());
}//從大到小輸出
}
}
注意,
for (WordFreq wf : pq) {
System.out.println(wf);
}
并不保證遍歷的有序
如果List<String> ls 進(jìn)行排序的話,不需要寫Comparator, 因?yàn)镾tring本身有compareTo的實(shí)現(xiàn)。
您可能感興趣的文章:
- java的arraylist排序示例(arraylist用法)
- Java針對(duì)ArrayList自定義排序的2種實(shí)現(xiàn)方法
- java中ArrayList的兩種排序方法實(shí)例
- Java ArrayList的不同排序方法
- java對(duì)ArrayList中元素進(jìn)行排序的幾種方式總結(jié)
- java教程之二個(gè)arraylist排序的示例分享
- Java實(shí)現(xiàn)ArrayList排序的方法詳解
- java實(shí)現(xiàn)ArrayList根據(jù)存儲(chǔ)對(duì)象排序功能示例
- Java中ArrayList與順序表示例詳解
相關(guān)文章
解決子線程中獲取不到HttpServletRequest對(duì)象的問(wèn)題
這篇文章主要介紹了解決子線程中獲取不到HttpServletRequest對(duì)象的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入
這篇文章主要介紹了Java 實(shí)現(xiàn)鏈表結(jié)點(diǎn)插入操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
解決Unable to start embedded container&nbs
這篇文章主要介紹了解決Unable to start embedded container SpringBoot啟動(dòng)報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
詳解Spring FactoryBean靈活創(chuàng)建復(fù)雜對(duì)象的秘密武器
FactoryBean是Spring框架中用于創(chuàng)建復(fù)雜Bean的接口,通過(guò)編程方式控制Bean的創(chuàng)建過(guò)程,它允許開(kāi)發(fā)者自定義Bean的創(chuàng)建邏輯,適用于集成第三方庫(kù)、延遲初始化、動(dòng)態(tài)代理和統(tǒng)一管理資源等場(chǎng)景,本文介紹Spring FactoryBean創(chuàng)建復(fù)雜對(duì)象的相關(guān)操作,感興趣的朋友一起看看吧2025-02-02
Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)
這篇文章主要介紹了Java中常用緩存Cache機(jī)制的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

