List接口:(介紹其下的兩個實現類:ArrayList和LinkedList)


以下介紹接口:

List接口:(介紹其下的兩個實現類:ArrayListLinkedList

ArrayList和數組非常類似,其底層也用數組組織數據,ArrayList是動態可變數組。

①  底層:指存儲格式。說明ArrayList對象都是存在於數組中。

注:數組和集合都是從下標0開始。

ArrayList有一個add(Object o)方法用於插入數組。

ArrayList的使用:(完成這個程序)

import  java.util.*

ArrayList在一個數組中添加數據,並遍歷。

ArrayList中數組的順序與添加順序一致。

只有List可用getsize。而Set則不可用(因其無序)。

Collection接口都是通過Iterator()(即迭代器)來對SetList遍歷。

通過語句:Iterator it=c.iterator(); 得到一個迭代器,將集合中所有元素順序排列。然后可以通過interator方法進行遍歷,迭代器有一個游標(指針)指向首位置。

InteratorhasNext(),用於判斷元素右邊是否還有數據,返回True說明有。然后就可以調用next動作。Next()會將游標移到下一個元素,並把它所跨過的元素返回。(這樣就可以對元素進行遍歷)

練習:寫一個程序,輸入對象信息,比較基本信息。

集合中每一個元素都有對象,如有字符串要經過強制類型轉換。

Collections是工具類,所有方法均為有用方法,且方法為static

Sort方法用於給List排序。

Collections.Sort()分為兩部分,一部分為排序規則;一部分為排序算法。

規則用來判斷對象;算法是考慮如何排序。

對於自定義對象,Sort不知道規則,所以無法比較。這種情況下一定要定義排序規則。方式有兩種:

①  java.lang下面有一個接口:Comparable(可比較的)

可以讓自定義對象實現一個接口,這個接口只有一個方法comparableTo(Object o)

其規則是當前對象與o對象進行比較,其返回一個int值,系統根據此值來進行排序。

如 當前對象>o對象,則返回值>0;(可將返回值定義為1)

如 當前對象=o對象,則返回值=0;

如 當前對象<o對象,則返回值〈0。(可將返回值定義為-1)

看TestArraylist的java代碼。

我們通過返回值1和-1位置的調換來實現升序和降序排列的轉換。

 

②  java.util下有一個Comparator(比較器)

它擁有compare(),用來比較兩個方法。

要生成比較器,則用Sort中Sort(List,List(Compate))

第二種方法更靈活,且在運行的時候不用編譯。

 

注意:要想實現comparTo()就必須在主方法中寫上implement comparable.

 

練習:生成一個EMPLOYEE類,然后將一系列對象放入到ArrayList。用Iterator遍歷,排序之后,再進行遍歷。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM