1. 程式人生 > >6、集合--List接口

6、集合--List接口

抽象 hashcode .com als 接收 重復 htm logs 自動

List集合繼承了Collection接口已定義一個允許重復的有序集合

該接口不但能夠對列表的一部分進行處理

還添加了位置的操作

源碼地址:https://www.cnblogs.com/Mrchengs/p/10842091.html

相關的方法均在源碼中已有說明!!!

AbstractList和AbstractSequentialList抽象類

兩個抽線類的源碼地址:

https://www.cnblogs.com/Mrchengs/p/10844184.html

https://www.cnblogs.com/Mrchengs/p/10845263.html

在java程序中有兩個抽象的List實現類,分別時以上的兩種

像AbstractSet類一樣,他們覆蓋了equals()方法和hashCode()方法以確保兩個相等的集合返回相同的哈希碼

如果兩個列表大小相等且包含順序相同的元素

則這兩個列表相等,這裏的hashCode()方法在List接口中指定,在這裏實現

除了equsls()方法和hasnCode()方法之外

還實現了其余List方法的一部分

因為數據的隨機訪問和順序讀取是分別實現的

是得具體表現更為容易

LinkedList和ArrayList實現類

在集合框架中有兩個常規的List實現

LinkedList和ArrayList

如果支持隨機訪問,不惜在除尾部的任何位置插入或除去元素----ArrayList

如果頻繁的從列表中添加和刪除元素,只要順序的訪問列表---LinkedList

實現地址:https://www.cnblogs.com/Mrchengs/p/10845263.html

兩個實現類都實現類Cloneable接口

提供了兩個構造函數一個無參一個接收一個Collection

LinkedList:添加了一些處理列表兩端的方法

1、void addFirst(Object o):將對象o添加到列表的開頭

2、void addLast(Object o):將對象o添加大列表的結尾

3、Object getFirst():返回列表開頭的元素

4、Object getLast():返回列表結尾的元素

5、Object removeFirst():刪除並且返回列表開頭的元素

6、Object removeLast():刪除並且返回列表結尾的元素

7、LinkedList():構建一個空的鏈表

8、LinkedList(Collection c):構建一個鏈接列表並且添加集合c

ArrayList類:

ArrayList類封裝類一個動態在分配的Object [] 數組

每個ArrayList對像有一個Capacity

這個Capacity表示存儲列表中元素的數組的容量

當元素添加到ArrayList時,他會自動在常量的時間內增加

1、void ensureCapacity(int minCapacity):將ArrayList對像容量增加minCapacity

2、void trimToSize();整理ArrayList對象容量為列表當前大小,程序可以使用這個操作減少對象的存儲空間

6、集合--List接口