JAVA學習——容器(概述)
容器是用來存儲對象的工具,容器不可以存儲基本類型,因爲基本類型保存在棧中隨時都可能被清除。
數組與集合的不同:1、數組雖然可以存儲對象但是其中的對象必須是屬於同一類型的,而容器是可以包含不同的對象類型的。2、數組是固定長度的,其長度在定義時就已經固定不可以改變,容器的大小是可動態改變的。3、數組可以存儲基本類型而容器只可以存儲對象。
容器家族圖譜如下:
之所以會有如此多的容器,是因爲每一種容器對對象進行存儲時採用的數據結構不同。其實集合和數組一樣存儲的都是元素的地址,而不是元素實體。容器中的元素可以直接使用print()方法打印出來。容器一般都包含增、刪、改、查等操作。
下面是容器類的公共方法:
boolean |
||
boolean |
addAll(Collection<? extendsE> c) |
|
void |
clear() |
|
boolean |
||
boolean |
containsAll(Collection<?> c) |
|
boolean |
||
int |
hashCode() |
|
boolean |
isEmpty() |
|
iterator() |
||
boolean |
remove(Object o) |
|
boolean |
RemoveAll(Collection<?> c) |
|
boolean |
retainAll(Collection<?> c) |
|
int |
size() |
|
Object[] |
toArray() |
|
|
toArray(T[] a) |
此處重點說一下iterator(),Java 的Iterator,它只能用來:
1)使用方法 iterator()要求容器返回一個 Iterator。第一次調用Iterator 的next()方法時,它返回序列的第一個元素。
2)使用next()獲得序列中的下一個元素。
3)使用hasNext()檢查序列中是否還有元素。
4)使用remove()將上一次返回的元素從迭代器中移除。
在JAVA容器中有一個特殊的迭代器listIterator,該迭代器只能用於list類的訪問。該迭代器所包含的主要方法是:
1、next()得到下一個元素;previous()得到前一個元素。
2、nextIndex()得到下一個元素的索引號;previousIndex()得到前一個元素的索引號。
3、hasNext()判斷是否還有後繼元素;hasPrevious()判斷是否還有前驅元素。
4、listIterator()得到該集合的迭代器;listIterator(n)得到一個子迭代器,從原集合中第n+1個元素起(注意考慮第一個元素索引號爲0)至集合末尾的所有元素組成一個子迭代器。
5、set(“newElement”)將當前元素替換爲newElement。這個方法的調用類似remove()方法,需要先調用next()方法。
在使用迭代器的同時不可以使用容器自身的方法對容器中的元素進行修改,否則會發生ConcurrentModificationException異常。