1. 程式人生 > 實用技巧 >2020/7/13 集合之ArrayList集合、Collection介面、Iterator迭代器

2020/7/13 集合之ArrayList集合、Collection介面、Iterator迭代器

一、集合

  1、集合介紹:

      集合,集合是java中提供的一種容器,可以用來儲存多個數據。

      在前面的學習中,我們知道資料多了,可以使用陣列存放或者使用ArrayList集合進行存放資料。那麼,集合和陣列既然都是容器,它們有啥區別呢?

      陣列的長度是固定的。集合的長度是可變的。集合中儲存的元素必須是引用型別資料

  2、集合的繼承實現關係:

      檢視ArrayList類發現它繼承了抽象類AbstractList同時實現介面List,而List介面又繼承了Collection介面。

      Collection介面為最頂層集合介面了。採集,聚集

原始碼:
interfaceListextendsCollection{ } public classArrayListextends AbstractList implementsList{ }

      這說明我們在使用ArrayList類時,該類已經把所有抽象方法進行了重寫。那麼,實現Collection介面的所有子類都會進行方法重寫。

      Collection介面常用的子介面有:List介面、Set介面

      List介面常用的子類有:ArrayList類、LinkedList類

      Set介面常用的子類有:HashSet類、LinkedHashSet類

      

二、Collection介面的基本方法

    

//建立集合的格式:
方式1:Collection<元素型別>變數名= new ArrayList<元素型別>();
方式2:Collection變數名= new ArrayList();

    方式1建立的集合,只能儲存<>中指定的元素型別,該方式為常用方式

    方式2建立的集合,集合的元素型別預設為Object型別,即任何型別的元素都可以儲存。

    演示Collection介面中的方法

//建立集合
Collection coll = new ArrayList();
//1,往集合中新增物件元素。add(E e)方法,E代表建立集合時所指定的資料型別如<String>,那麼,E就代表String型別;建立集合時若沒有指定資料型別,那麼,E就代表Object型別。
coll.add("abc"); coll.add("ef"); coll.add("g"); //把集合列印一下。 System.out.println(coll);//列印結果為:[abc, ef, g] System.out.println(coll.toString());//列印結果為:[abc, ef, g] //2,從集合中刪除元素。remove(Object o)方法 coll.remove("ef"); //刪除後,集合元素為[abc, g] //3,判斷集合中是否包含指定元素。contains(Object o)方法 System.out.println(coll.contains("abc")); //列印結果為true System.out.println(coll.contains("ef")); //列印結果為false //4,獲取集合元素個數。size()方法 System.out.println(coll.size()); //列印結果為2 //5,返回包含集合中所有元素的陣列。toArray()方法 String[] array = coll.toArray(); //陣列中的元素為{"abc","g"} //6,清除集合元素。remove()方法 coll.clear(); //清空後,集合元素為[],代表沒有元素

三、Iterator迭代器

    1、概述:

      java中提供了很多個集合,它們在儲存元素時,採用的儲存方式不同。我們要取出這些集合中的元素,可通過一種通用的獲取方式來完成。

      Collection集合元素的通用獲取方式:在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來。

      一直把集合中的所有元素全部取出。這種取出方式專業術語稱為迭代。

      集合中把這種取元素的方式描述在Iterator介面中。Iterator介面的常用方法如下

      

      hasNext()方法:用來判斷集合中是否有下一個元素可以迭代。如果返回true,說明可以迭代。

      next()方法:用來返回迭代的下一個元素,並把指標向後移動一位。

    2、迭代元素圖解

      

    3、Iterator迭代方式的程式碼體現

        在Collection介面描述了一個抽象方法iterator方法,所有Collection子類都實現了這個方法,並且有自己的迭代形式。

        

        進行程式碼演示:

//1,建立集合物件。
Collection<String> coll =newArrayList<String>();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");

//2.獲取容器的迭代器物件。通過iterator方法。
Iterator it = coll.iterator();

//3,使用具體的迭代器物件獲取集合中的元素。參閱迭代器的方法
while(it.hasNext()){
System.out.println(it.next());
}

/*
迭代器for迴圈的形式的使用
for(Iterator it = coll.iterator(); it.hasNext(); ) {
System.out.println(it.next());
}
*/

注意:在進行集合元素取出時,如果集合中已經沒有元素了,還繼續使用迭代器的next方法,將會發生java.util.NoSuchElementException沒有集合元素的錯誤。