1. 程式人生 > >我們為什麼要使用List和Set(List,Set詳解)

我們為什麼要使用List和Set(List,Set詳解)

 

1、集合概述


類圖

這裡寫圖片描述

集合和陣列的區別?

這裡寫圖片描述

集合基本方法

這裡寫圖片描述

集合特有的遍歷方式?
                public static void main(String[] args) {
                    //建立集合物件
                    Collection c = new ArrayList();

                    //建立並新增元素
                    c.add("hello");
                    c.add("world");
                    c.add("java");

                    //遍歷集合
                    Iterator it = c.iterator();
                    while(it.hasNext()) {
                        String s =(String) it.next();
                        System.out.println(s);
                    }
                }

 

2、List和Set概述


List和Set區別?

這裡寫圖片描述

3、List


List特點和實現類

這裡寫圖片描述

有關執行緒安全的知識,參考http://blog.csdn.net/qq_34149805/article/details/64128499

有關連結串列的知識,參考http://blog.csdn.net/qq_34149805/article/details/67117288

4、Set


Set特點

Set具有與Collection完全一樣的介面,因此沒有任何額外的功能,不像前面有兩個不同的List。實際上Set就是Collection,只 是行為不同。(這是繼承與多型思想的典型應用:表現不同的行為。)Set不儲存重複的元素(至於如何判斷元素相同則較為負責)

Set 存入Set的每個元素都必須是唯一的,因為Set不儲存重複元素。加入Set的元素必須定義equals()方法以確保物件的唯一性。Set與Collection有完全一樣的介面。Set介面不保證維護元素的次序。

Set實現類

這裡寫圖片描述

5、總結


ArrayXxx:底層資料結構是陣列,查詢快,增刪慢

LinkedXxx:底層資料結構是連結串列,查詢慢,增刪快

HashXxx:底層資料結構是雜湊表。依賴兩個方法:hashCode()和equals()

TreeXxx:底層資料結構是二叉樹。兩種方式排序:自然排序和比較器排序
  •  
我們為何使用它們?

這裡寫圖片描述