JAVA學習——容器(概述)

JAVA學習——容器(概述)


容器是用來存儲對象的工具,容器不可以存儲基本類型,因爲基本類型保存在棧中隨時都可能被清除。

數組與集合的不同:1、數組雖然可以存儲對象但是其中的對象必須是屬於同一類型的,而容器是可以包含不同的對象類型的。2、數組是固定長度的,其長度在定義時就已經固定不可以改變,容器的大小是可動態改變的。3、數組可以存儲基本類型而容器只可以存儲對象。

         容器家族圖譜如下:

        

         之所以會有如此多的容器,是因爲每一種容器對對象進行存儲時採用的數據結構不同。其實集合和數組一樣存儲的都是元素的地址,而不是元素實體。容器中的元素可以直接使用print()方法打印出來。容器一般都包含增、刪、改、查等操作。

         下面是容器類的公共方法:

 boolean

add(E e)
          確保此 collection 包含指定的元素(可選操作)。

 boolean

addAll(Collection<? extendsE> c)
          將指定 collection 中的所有元素都添加到此 collection 中(可選操作)。

 void

clear()
          移除此 collection 中的所有元素(可選操作)。

 boolean

contains(Object o)
          如果此 collection 包含指定的元素,則返回 true。

 boolean

containsAll(Collection<?> c)
          如果此 collection 包含指定 collection 中的所有元素,則返回 true。

 boolean

equals(Object o)
          比較此 collection 與指定對象是否相等。

 int

hashCode()
          返回此 collection 的哈希碼值。

 boolean

isEmpty()
          如果此 collection 不包含元素,則返回 true。

 Iterator<E>

iterator()
          返回在此 collection 的元素上進行迭代的迭代器。

 boolean

remove(Object o)
          從此 collection 中移除指定元素的單個實例,如果存在的話(可選操作)。

 boolean

RemoveAll(Collection<?> c)
          移除此 collection 中那些也包含在指定 collection 中的所有元素(可選操作)。

 boolean

retainAll(Collection<?> c)
          僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)。

 int

size()
          返回此 collection 中的元素數。

 Object[]

toArray()
          返回包含此 collection 中所有元素的數組。

<T> T[]

toArray(T[] a)
          返回包含此 collection 中所有元素的數組;返回數組的運行時類型與指定數組的運行時類型相同。

    此處重點說一下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異常。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章