java之List集合與Set集合的區別(1)

上一篇寫的是最近開發中用到的一些Map集合方法的描述及示例,現在我在把項目中用到的List集合以及Set集合做一個總結以及代碼示例。

 

項目中我用到的List集合主要是ArrayList以及HashSet,他們全都是繼承自Collection接口;

List底層就是數組(也就是說可以根據下標來拿到list中的元素),特點是元素有序放入,元素可以有重複,元素可以爲null;可以使用for循環遍歷,也可以使用迭代器。

HashSet是基於哈希表實現的,元素無序放入,放入的值可以爲null,但是隻能有一個null,因爲HashSet的元素是不可重複的;Set取值只能使用迭代器或者使用foreach遍歷,因爲它無序,所以不能依照下標取值。

下面直接上代碼,更直觀的發現兩者的不同

循環List集合元素的代碼示例如下:
public static void main(String[] args) {
        //new出List實例
        List list = new ArrayList();
        //在list裏添加數據
        list.add("飛機");
        list.add("坦克");
        list.add("大炮");
        //循環list
        for (int i = 0; i < list.size(); i++) {
            //得到list的第i個下標的值
            Object o = list.get(i);
            //輸出得到的值
            System.out.println("list集合裏第"+i+"個的值爲:"+o);
        }
}

輸出結果爲:

list集合裏第0個的值爲:飛機
list集合裏第1個的值爲:坦克
list集合裏第2個的值爲:大炮

foreach遍歷Set集合元素的代碼如下:(與List集合放入元素的順序一致)

public static void main(String[] args) {
        int i = 1;//用來記錄取出的是第幾個值
        //創建HashSet實例
        Set set = new HashSet();
        //向集合裏添加值
        set.add("飛機");
        set.add("坦克");
        set.add("大炮");
        //遍歷set集合
        for (Object machine:set) {
        //輸出set集合的每一個值
        System.out.println("得到的Set集合第"+i+++"個的值爲"+machine);
        }
 }

輸出結果爲:

得到的Set集合第1個的值爲大炮
得到的Set集合第2個的值爲飛機
得到的Set集合第3個的值爲坦克

從代碼可以看出Set集合與List集合最大的區別就是Set集合的元素儲存是無序的不可重複的,而List集合的元素儲存是有序的可重複的,和數組一樣可以根據下標取值;剩下的存null值大家可以自己試驗一下,在這就不多做演示了。---純屬原創,不喜勿噴。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章