1. Iterator迭代器java
全部Collection的實現類都實現了iterator方法,該方法返回一個Iterator接口類型的對象,用於實現對集合元素迭代的便利。在java.util包下。安全
1)Iterator定義有三個方法:ide
①boolean hasNext()方法:判斷指針後面是否有元素。spa
②E next()方法:指針後移,並返回當前元素。E表明泛型,默認爲Object類型。線程
③void remove()方法:在原集合中刪除剛剛返回的元素。設計
2)對於List集合而言,能夠經過基於下標的get方法進行遍歷;而iterator方法是針對Collection接口設計的,因此,全部實現了Collection接口的類,均可以使用Iterator實現迭代遍歷。指針
3)迭代器的使用方式:先問後拿。問:boolean hasNext()該方法詢問迭代器當前集合是否還有元素;拿:E next()該方法會獲取當前元素。迭代器的迭代方法是while循環量身定製的。orm
4)迭代器中的刪除問題:在迭代器迭代的過程當中,咱們不能經過「集合」的增刪等操做,來改變該集合的元素數量!不然會引起迭代異常!若想刪除迭代出來的元素,只能經過Iterator。迭代器在使用本身的remove()方法時,能夠將剛剛獲取的元素從集合中刪除,可是不能重複調用兩次!即在不迭代的狀況下,不能在一個位置刪兩次。對象
案例9:blog
2. Comparable和Comparator接口
(1) Comparable接口:Comparable接口用於表示對象間的大小關係,咱們須要實現Comparable接口,並重寫compareTo()方法定義比較規則。
(2) Collections.sort()方法:須要集合中的對象實現Comparable接口,從而能夠調用其compareTo方法判斷對象的大小,不然sort將沒法判斷。該方法會依次調用集合中每一個元素的compareTo方法,並進行天然排序。
案例10:
(3) Comparator接口:比較器。一旦Java類實現了Comparable,其比較邏輯就已經肯定了,若是但願在排序中的操做按照「臨時指定規則」,即自定義比較規則。能夠採用Comparator接口回調方式。使用匿名類方式建立一個實例來定義比較器的方式很常見。
Comparator比較器建立步驟:
①定義一個類並實現Comparator接口。
②實現接口中的抽象方法compare(E o1,E o2)。
③實例化這個比較器
④調用Collections的重載方法:sort(Collection c,Comparator comparator)進行排序。
案例11:
3. Collection和Collentions的區別
Collection是java.util下的接口,它是各類集合的父接口,繼承於它的接口主要有Set 和List;
Collections是個java.util下的類,是針對集合的幫助類,提供一系列靜態方法實現對各類集合的搜索、排序、線程安全化等操做。