集合 API 整理

TreeSet

  • 符合 Tree 的定義
  • TreeSet是一個有序集合

將元素添加到集合的正確位置上使用 TreeSet 是一個不錯的選擇(排序)

對象的比較

對象即元素纽哥,只要實現(xiàn)了 Comparable 接口即可對對象進行比較

public interface Comparable<T> {
    int compareTo(T other);
}

調用 a.compareTo(b)

  • 如果 a 與 b 相等沼头, 返回 0
  • 如果 a 位于 b 之前,則返回負值
  • 如果 a 位于 b 之后,則返回正值

假設是兩個x學生進行比較圃伶,比較的是 id

public class Student implements Comparable<Student> {
    private int id;

    @Override
    public int compareTo(Student other) {
        //也可 return Integer.compare(id, other.id);
        return id - other.id;//從小到大排序悲关,反之 return other.id - id;
    }
}

但是注意 如果比較的是比較長的數(shù)字可能會導致 id - other.id 溢出

還有很多關于排序很有用的接口

public interface Comparator<T>{

    /**
     * 將兩個對象進行比較,
     * 如果 a 位于 b 之前則返回負值撤逢;
     * 如果兩個對象處于相同位置則后返回 0;
     * 如果 a 位于 b 之后返回正值
     */
    int compare(T a, T b);
}
/**
* 同時也要實現(xiàn) Comparable 接口
*/
public interface SortedSet<E> {

    /**
     * 返回最小的元素
     */
    E first();

    /**
     * 返回最大的元素
     */
    E last();

}
public interface Navigable<E> {

    /**
     * 返回大于 value 的最小元素
     */
    E higher(E value);

    /**
     * 返回小于 value 的最大元素
     */
    E lower(E value);

    /**
     * 返回大于等于 value 的最小元素
     */
    E celling(E value);

    /**
     * 返回小于等于 value 的最大元素
     */
    E floor(E value);

    /**
     * 刪除并返回這個集合中的最大元素, 為空返回 null
     * @return
     */
    E poolFirst();

    /**
     * 刪除并返回這個集合中的最小元素, 為空返回 null
     */
    E poolLast();

    /**
     * 返回一個按照第幾按順序遍歷集合中元素的迭代器
     */
    Iterator<E> descendingIterator();
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末膛锭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蚊荣,更是在濱河造成了極大的恐慌初狰,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互例,死亡現(xiàn)場離奇詭異奢入,居然都是意外死亡,警方通過查閱死者的電腦和手機媳叨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門腥光,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糊秆,你說我怎么就攤上這事武福。” “怎么了痘番?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵捉片,是天一觀的道長。 經(jīng)常有香客問我夫偶,道長界睁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任兵拢,我火速辦了婚禮翻斟,結果婚禮上,老公的妹妹穿的比我還像新娘说铃。我一直安慰自己访惜,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布腻扇。 她就那樣靜靜地躺著债热,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幼苛。 梳的紋絲不亂的頭發(fā)上窒篱,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音,去河邊找鬼墙杯。 笑死配并,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的高镐。 我是一名探鬼主播溉旋,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫉髓!你這毒婦竟也來了观腊?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤算行,失蹤者是張志新(化名)和其女友劉穎梧油,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纱意,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡婶溯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了偷霉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片迄委。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖类少,靈堂內(nèi)的尸體忽然破棺而出叙身,到底是詐尸還是另有隱情,我是刑警寧澤硫狞,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布信轿,位于F島的核電站,受9級特大地震影響残吩,放射性物質發(fā)生泄漏财忽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一泣侮、第九天 我趴在偏房一處隱蔽的房頂上張望即彪。 院中可真熱鬧,春花似錦活尊、人聲如沸隶校。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽深胳。三九已至,卻和暖如春铜犬,著一層夾襖步出監(jiān)牢的瞬間舞终,已是汗流浹背轻庆。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留权埠,地道東北人榨了。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像攘蔽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子呐粘,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎部分 基礎部分的順序:基本語法满俗,類相關的語法,內(nèi)部類的語法作岖,繼承相關的語法唆垃,異常的語法,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • 面向對象主要針對面向過程痘儡。 面向過程的基本單元是函數(shù)辕万。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,055評論 0 4
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,225評論 0 2
  • 以下是《瘋狂Java講義》中的一些知識沉删,如有錯誤渐尿,煩請指正。 集合概述 Java集合可以分為Set矾瑰、List砖茸、Ma...
    hainingwyx閱讀 539評論 0 1
  • 那夜凉夯,十五的月亮掛在窗前,然而采幌,再耀眼的銀輝劲够,也穿不過肥厚的脂肪包裹著心臟的黑。 我不是個十足的胖子休傍,168的身高...
    白小科閱讀 415評論 3 2