【java】【集合】TreeSet

love_Aym發表於2018-05-02

一、概述

TreeSet集合是用來對物件元素進行排序的,同樣也可以保證元素的唯一,底層是二叉樹實現

二、TreeSet唯一性原理

 1.特點

    * TreeSet是用來排序的, 可以指定一個順序, 物件存入之後會按照指定的順序排列

 2.使用方式

    a.自然順序(Comparable)

        *  TreeSet類的add()方法中會把存入的物件提升為Comparable型別

        *  呼叫物件的compareTo()方法和集合中的物件比較

        *  根據compareTo()方法返回的結果進行儲存

    b.比較器順序(Comparator)

        *  建立TreeSet的時候可以制定一個Comparator

        *  如果傳入了Comparator的子類物件, 那麼TreeSet就會按照比較器中的順序排序

        *  add()方法內部會自動呼叫Comparator介面中compare()方法排序

        *  呼叫的物件是compare方法的第一個引數,集合中的物件是compare方法的第二個引數

     c.兩種方式的區別

        *  TreeSet建構函式什麼都不傳, 預設按照類中Comparable的順序(沒有就報錯ClassCastException)

        *  TreeSet如果傳入Comparator,就優先按照Comparator


相關文章