--- tags: Java --- # 2/3 Collection Framework、 Comparable與Comparator ## Collection Framework  ==補充: 實線有繼承關係,虛線則是要實作關係== ### Collection * java.util內。 * 定義基本操作。 * 有Iterable,能用Enhance "For" 去讀取元素資料。 * 為了不讓iterator生命周期過長使用for迴圈去跑。 ``` datas是資料 // for( Iterator it = datas.iterator();it.hasNext();){ // Object data = it.next(); // System.out.println(data); // } //下列是比較好的方式for for( Object data: datas){ System.out.println(data); } ``` ### List * 有ArrayList、Vector、LinkedList。 * 順序性: 有照原本順序,怎麼存放怎麼取出。 * 允許重複的資料 * LinkedList 可當作Queue使用(先進先出(FIFO)) 。 ### Set * 有HashSet、LinkedHashSet、TreeSet。 * 不允許重複資料(篩選資料)。 * TreeSet有排序的功能又能有不重複的資料。 ==補充: TreeXXX就具有排序的能力== ### Comparable (資料) * java.lang * 是在集合內部定義的方法實現的排序的介面 * compareTo(另一個) * 比出來值大於零,兩個順序互換。 * 彈性小,只能在同個類裡面去比較。 ### Comparator * java.util * 是在集合外部實現的排序的介面 * compare(a, b),排序,需要比較兩個物件誰在前誰在後。 * 彈性大。 * 是一個介面,是比較器,功能上用來排序比較多,但不是只有排序的功能還有其他的。 * 另一個可能會用到的是分組。 Q: 用一個類去實作Comparator覆寫compare() Q: 大樂透隨機產生六個號碼並去排序出來
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up