Java核心API -- 7(Iterator迭代器、Comparable、Comparator比較子)

來源:互聯網
上載者:User

標籤:iterator   comparable   comparator   迭代器   比較子   

1. Iterator迭代器

    所有Collection的實作類別都實現了iterator方法,該方法返回一個Iterator介面類型的對象,用於實現對集合元素迭代的便利。在java.util包下。

    1)Iterator定義有三個方法:

        ①boolean hasNext()方法:判斷指標後面是否有元素。

        ②E next()方法:指標後移,並返回當前元素。E代表泛型,預設為Object類型。

        ③void remove()方法:在原集合中刪除剛剛返回的元素。

    2)對於List集合而言,可以通過基於下標的get方法進行遍曆;而iterator方法是針對Collection介面設計的,所以,所有實現了Collection介面的類,都可以使用Iterator實現迭代遍曆。

    3)迭代器的使用方式:先問後拿。問:boolean hasNext()該方法詢問迭代器當前集合是否還有元素;拿:E next()該方法會擷取當前元素。迭代器的迭代方法是while迴圈量身定製的。

    4)迭代器中的刪除問題:在迭代器迭代的過程中,我們不能通過“集合”的增刪等操作,來改變該集合的元素數量!否則會引發迭代異常!若想刪除迭代出來的元素,只能通過Iterator。迭代器在使用自己的remove()方法時,可以將剛剛擷取的元素從集合中刪除,但是不能重複調用兩次!即在不迭代的情況下,不能在一個位置刪兩次。

    案例9:

        650) this.width=650;" style="width:668px;height:478px;" title="09 clipboard.png" src="http://s3.51cto.com/wyfs02/M01/6E/F8/wKiom1WNFvKxg5yAAAKAJAVZKSg077.jpg" width="654" height="478" alt="wKiom1WNFvKxg5yAAAKAJAVZKSg077.jpg" />

2. Comparable和Comparator介面

    (1) Comparable介面:Comparable介面用於表示對象間的大小關係,我們需要實現Comparable介面,並重寫compareTo()方法定義比較規則。

    (2) Collections.sort()方法:需要集合中的對象實現Comparable介面,從而可以調用其compareTo方法判斷對象的大小,否則sort將無法判斷。該方法會依次調用集合中每個元素的compareTo方法,並進行自然排序。 

    案例10:

        650) this.width=650;" style="width:678px;height:372px;" title="10 1 clipboard.png" src="http://s3.51cto.com/wyfs02/M02/6E/F8/wKiom1WNGamyEHIoAAHq91rkzY0951.jpg" width="715" height="336" alt="wKiom1WNGamyEHIoAAHq91rkzY0951.jpg" />

        650) this.width=650;" title="10 2 clipboard.png" src="http://s3.51cto.com/wyfs02/M00/6E/F4/wKioL1WNG36ztdQWAAGE_hyCnB0496.jpg" width="678" height="297" alt="wKioL1WNG36ztdQWAAGE_hyCnB0496.jpg" />

        650) this.width=650;" style="width:680px;height:65px;" title="10 3 clipboard.png" src="http://s3.51cto.com/wyfs02/M01/6E/F8/wKiom1WNGfTSb2eSAABZfC9wijE684.jpg" width="664" height="61" alt="wKiom1WNGfTSb2eSAABZfC9wijE684.jpg" />

    (3) Comparator介面:比較子。一旦Java類實現了Comparable,其比較邏輯就已經確定了,如果希望在排序中的操作按照“臨時指定規則”,即自訂比較規則。可以採用Comparator介面回調方式。使用匿名類方式建立一個執行個體來定義比較子的方式很常見。

    Comparator比較子建立步驟:

        ①定義一個類並實現Comparator介面。

        ②實現介面中的抽象方法compare(E o1,E o2)。

        ③執行個體化這個比較子

        ④調用Collections的重載方法:sort(Collection c,Comparator comparator)進行排序。

    案例11:

        650) this.width=650;" style="width:651px;height:391px;" title="11 clipboard.png" src="http://s3.51cto.com/wyfs02/M02/6E/F4/wKioL1WNG9uxf7NNAAJZkNLZPlo765.jpg" width="681" height="417" alt="wKioL1WNG9uxf7NNAAJZkNLZPlo765.jpg" />

3. Collection和Collentions的區別

    Collection是java.util下的介面,它是各種集合的父介面,繼承於它的介面主要有Set 和List;

   Collections是個java.util下的類,是針對集合的協助類,提供一系列靜態方法實現對各種集合的搜尋、排序、安全執行緒化等操作。

 

本文出自 “永遠年輕” 部落格,請務必保留此出處http://kingkongzhao.blog.51cto.com/6319491/1666023

Java核心API -- 7(Iterator迭代器、Comparable、Comparator比較子)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.