package Hello1;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
* 需求:實現(xiàn)名字 年齡靈活排序,不用修改Student里的代碼
* */
public class Test11 {
public static void main(String[] args) {
Student[] xx = { //定義一個對象數(shù)組
new Student("cxm",34),
new Student("axm",36),
new Student("ssm",32),
new Student("kxm",31),
};
//Comparator是接口,所以后面要用匿名內(nèi)部類來實現(xiàn)Comparator所定義的方法
//因為是比較器,所以你得告訴構(gòu)造器,你要比較的對象類型是什么硼啤,所以得用泛型
Comparator<Student> c1 = new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
//o1 和 o2是學生對象,
//返回正負整數(shù)
return o1.age - o2.age;
}
};
Comparator<Student> c2 = new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.name.compareTo(o2.name); //compareTo是Comparable的
}
};
//根據(jù)name來實現(xiàn)排序
List<Student> LL= Arrays.asList(xx);
Collections.sort(LL,c2);
for(Student ss: xx) {
System.out.println(ss.toString());
}
}
}
class Student {
public String name;
public int age;
public Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Student [name=" + this.name + ", age=" + this.age + "]"; //this當前類
}
}
Java-利用比較器解耦后
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門更哄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芋齿,“玉大人腥寇,你說我怎么就攤上這事」低唬” “怎么了花颗?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長惠拭。 經(jīng)常有香客問我扩劝,道長,這世上最難降的妖魔是什么职辅? 我笑而不...
- 正文 為了忘掉前任棒呛,我火速辦了婚禮,結(jié)果婚禮上域携,老公的妹妹穿的比我還像新娘簇秒。我一直安慰自己,他們只是感情好秀鞭,可當我...
- 文/花漫 我一把揭開白布趋观。 她就那樣靜靜地躺著,像睡著了一般锋边。 火紅的嫁衣襯著肌膚如雪皱坛。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼吭服,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蝗罗?” 一聲冷哼從身側(cè)響起噪馏,我...
- 正文 年R本政府宣布,位于F島的核電站进泼,受9級特大地震影響蔗衡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜乳绕,卻給世界環(huán)境...
- 文/蒙蒙 一绞惦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洋措,春花似錦济蝉、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至滓鸠,卻和暖如春淑仆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哥力。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 任何App引矩,無論大小梁丘,都存在繁雜的頁面跳轉(zhuǎn),按照正常的邏輯處理旺韭,那就是在發(fā)起的地方實例化一個targetVC氛谜,然后...
- 寫在最前 以下方案的思路來自于項目組的同事LEAF 現(xiàn)狀 在iOS開發(fā)中,對于根據(jù)不同的事件跳轉(zhuǎn)到不同的控制器這...
- 使用場景 項目中經(jīng)常會出現(xiàn)從A控制器push到B控制器区端,這個時候你需要在A控制器中#import B 然后 [s...
- 前言 本文參考了微信讀書團隊的文章值漫,學習了runtime反射機制的強大。具體的demo工程 學習過程1 A和B想要...
- 后端——>Django框架——>用Python寫的 要想自己改Django织盼,先得了解框架杨何,學會mini-web框架...