Java集合面試總結__Java

來源:互聯網
上載者:User
                                            Java集合面試總結

★★★★★集合架構:用於儲存資料的容器。

特點:

1:對象封裝資料,對象多了也需要儲存。集合用於儲存物件。

2:對象的個數確定可以使用數組,但是不確定怎麼辦。可以用集合。因為集合是可變長度的。

 

集合和數組的區別:

1:數組是固定長度的;集合可變長度的。

2:數組可以儲存基礎資料型別 (Elementary Data Type),也可以儲存引用資料類型;集合只能儲存引用資料類型。

3:數組儲存的元素必須是同一個資料類型;集合儲存的對象可以是不同資料類型。

 

資料結構:就是容器中儲存資料的方式。 

對於集合容器,有很多種。因為每一個容器的自身特點不同,其實原理在於每個容器的內部資料結構不同。

集合容器在不斷向上抽取過程中。出現了集合體系。

在使用一個體系時,原則:參閱頂層內容。建立底層對象。

 


1 Iterator介面 1.1 Iterator

< java.util >-- 迭代器:是一個介面—Iterator介面,其作用:用於取集合中的元素。

在Iterator介面中定義了三個方法:

 boolean

hasNext()  如果仍有元素可以迭代,則返回true。

 E

next()   返回迭代的下一個元素。

 void

remove()  從迭代器指向的 collection 中移除迭代器返回的最後一個元素(可選操作)。

 每一個集合都有自己的資料結構(就是容器中儲存資料的方式),都有特定的取出自己內部元素的方式。為了便於操作所有的容器,取出元素。將容器內部的取出方式按照一個統一的規則向外提供,這個規則就是Iterator介面,使得對容器的遍曆操作與其具體的底層實現相隔離,達到解耦的效果。

也就說,只要通過該介面就可以取出Collection集合中的元素,至於每一個具體的容器依據自己的資料結構,如何?的具體取出細節,這個不用關心,這樣就降低了取出元素和具體集合的耦合性。 

Iterator it = coll.iterator();//擷取容器中的迭代器對象,至於這個對象是是什麼不重要。這對象肯定符合一個規則Iterator介面。

[java]  view plain  copy public static voidmain(String[] args) {          Collection coll = new ArrayList();          coll.add("abc0");          coll.add("abc1");          coll.add("abc2");          //--------------方式1----------------------          Iterator it = coll.iterator();          while(it.hasNext()){              System.out.println(it.next());          }          //---------------方式2用此種----------------------          for(Iterator it =coll.iterator();it.hasNext(); ){              System.out.println(it.next());          }       }  

使用Iterator迭代器來進行刪除,則不會出現並發修改異常。

因為:在執行remove操作時,同樣先執行checkForComodification(),然後會執行ArrayList的remove()方法,該方法會將modCount值加1,這裡我們將expectedModCount=modCount,使之保持統一。 1.2 ListIterator

  上面可以看到,Iterator只提供了刪除元素的方法remove,如果我們想要在遍曆的時候添加元素怎麼辦。

  ListIterator介面繼承了Iterator介面,它允許程式員按照任一方向遍曆列表,迭代期間修改列表,並獲得迭代器在列表中的當前位置。

使用ListIterator來對list進行邊遍曆邊添加元素操作:

[java]  view plain  copy

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.