使用java實現面向對象 第六章
第六章 集合框架
一:接口:即表示集合的抽象數據類型。
實現:即集合框架中接口的實現。
算法:在一個實現了某個集合框架中的接口的對象身上完成某種有用的計算的方法,例如查找、
排序等。
Collection 接口存儲一組不唯一,無序的對象
List 接口存儲一組不唯一,有序(插入順序)的對象
Set 接口存儲一組唯一,無序的對象
Map接口存儲一組鍵值對象,提供key到value的映射
二、List接口
List接口的常用類有ArrayList和LinkedList。它們都可以容納所有類型的對象,包括
Null,允許重復,並且都保證元素的存儲順序。
ArrayList實現了長度可變的數組,在內存中分配連續的空間。遍歷元素和隨機訪問元素的效率比較高
LinkedList采用鏈表存儲方式。插入、刪除元素時效率比較高。
1.List接口常用方法
方法名 |
說明 |
boolean add(Object o) |
在列表的末尾順序添加元素,起始索引位置從0開始
|
void add(int index,Object o) |
在指定的索引位置添加元素。索引位置必須介於0和列表中元 素個數之間 |
int size() |
返回列表中的元素個數 |
Object get(int index) |
回指定索引位置處的元素。取出的元素是Object類型,使用前需要進行強制類型轉換 |
boolean contains(Object o) |
判斷列表中是否存在指定元素 |
boolean remove(Object o) |
從列表中刪除元素
|
Object remove(int index) |
從列表中刪除指定位置元素,起始索引位置從0開始
|
2.LinkedList的特殊方法
方法名 |
說明 |
void addFirst(Object o) |
在列表的首部添加元素 |
void addLast(Object o) |
在列表的末尾添加元素 |
Object getFirst() |
返回列表中的第一個元素 |
Object getLast() |
返回列表中的最後一個元素 |
Object removeFirst() |
刪除並返回列表中的第一個元素 |
Object removeLast() 刪除並返回列表中的最後一個元素
Map的常用方法
方法名 說 明
Object put(Object key, Object val) 以“鍵-值對”的方式進行存儲
Object get (Object key) 根據鍵返回相關聯的值,如果不存在指定的鍵,返回null
Object remove (Object key) 刪除由指定的鍵映射的“鍵-值對”
int size() 返回元素個數
Set keySet () 返回鍵的集合
Collection values () 返回值的集合
boolean containsKey (Object key) 如果存在由指定的鍵映射的“鍵-值對”,返回true
Hashtable和HashMap的異同P190
三、叠代器Iterator
所有集合接口和類都沒有提供相應遍歷方法,而是由Iterator實現集合遍歷
Collection 接口的iterate()方法返回一個Iterator,然後通過Iterator接口的兩個方法可實現
遍歷
1.boolean hasNext(): 判斷是否存在另一個可訪問的元素
2.Object next(): 返回要訪問的下一個元素
四、泛型集合
把任何類型對象通過add(Object obj) 放入List中,認為只是Object類型
通過get(int index) 取出List中元素時必須進行強制類型轉換,繁瑣而且容易出現異常
使用Map的put(Object key, Object value)和get (Object key)存取對象時存在同樣問題
使用Iterator的next()方法獲取元素時存在同樣問題
使用java實現面向對象 第六章