JDK源碼(1.7) -- java.util.Collection


 java.util.Collection<E> 源碼分析(JDK1.7)

---------------------------------------------------------------------------------

java.util.Collection<E>是一個接口,它的定義如下:

1 public interface Collection<E> extends Iterable<E> {
2    // Query Operations
3    // Modification Operations
4    // Bulk Operations
5    // Comparison and hashing
6 }

(1)從定義中可以看出Collection接口中定義了:查詢方法修改方法批量操作方法哈希和比較方法。

(2)Collection是一個根接口,表示一組對象,這些對象也稱為collection的元素。

(3)Collection的實現類中有這樣的特征: 有些collection是允許重復元素的;有些collection是不允許重復元素的;有些collection是有序的;有些collection是無序的。

(4)JDK不提供對Collection接口的直接實現,而且提供了兩個更為具體的接口去實現(如:java.util.List和java.util.Set)

----------------------------------------------------------------------------------

下面來看看java.util.Collection<E>中具體有哪些方法

從下面的表格中可以看出java.util.Collection<E>接口中一共有15個方法,其中查詢操作6個;修改操作2個;批量操作5個;比較和哈希操作2個

查詢操作 int size() 返回此 collection 中的元素數。如果此 collection 包含的元素大於 Integer.MAX_VALUE,則返回 Integer.MAX_VALUE
boolean isEmpty() 如果此 collection 不包含元素,則返回 true,否則返回false
boolean contains(Object o) 如果此 collection 包含指定的元素,則返回 true。更確切地講,當且僅當此 collection 至少包含一個滿足 (o==null ? e==null : o.equals(e)) 的元素 e 時,返回 true
Iterator<E> iterator() 返回在此 collection 的元素上進行迭代的迭代器。關於元素返回的順序沒有任何保證(除非此 collection 是某個能提供保證順序的類實例)。
Object[] toArray() 返回包含此 collection 中所有元素的數組。如果 collection 對其迭代器返回的元素順序做出了某些保證,那么此方法必須以相同的順序返回這些元素。
<T> T[] toArray(T[] a) 返回包含此 collection 中所有元素的數組;返回數組的運行時類型與指定數組的運行時類型相同。如果指定的數組能容納該 collection,則返回包含此 collection 元素的數組。否則,將分配一個具有指定數組的運行時類型和此 collection 大小的新數組。
修改操作 boolean add(E e) 將元素e添加到此集合中,如果添加成功則返回true,添加失敗則返回false
boolean remove(Object o) 從此 collection 中移除指定元素o的單個實例,如果操作成功則返回true,操作失敗則返回false
批量操作 boolean containsAll(Collection<?> c ) 如果此 collection 包含指定 collection 中的所有元素,則返回 true
addAll(Collection<? extends E> c) 將指定 collection 中的所有元素都添加到此 collection 中.
boolean removeAll(Collection<?> c) 移除此 collection 中那些也包含在指定 collection 中的所有元素。
boolean retainAll(Collection<?> c) 僅保留此 collection 中那些也包含在指定 collection 的元素。
void  clear() 移除此 collection 中的所有元素。
比較和哈希操作 boolean equals(Object o) 比較此 collection 與指定對象是否相等
int hashCode() 返回此 collection 的哈希碼值

----------------------------------------------------------------------------------

java.util.Collection<E>源碼如下:(看看下面的源碼,定義的很規范,各種操作都有-----> 此時應該想到它的實現類該有多可憐,要實現多少方法呀。~_~)

 1 package java.util;
 2 
 3 
 4 public interface Collection<E> extends Iterable<E> {
 5     // Query Operations
 6 
 7     int size();
 8 
 9     boolean isEmpty();
10 
11     boolean contains(Object o);
12 
13     Iterator<E> iterator();
14 
15     Object[] toArray();
16 
17     <T> T[] toArray(T[] a);
18 
19     // Modification Operations
20 
21     boolean add(E e);
22 
23     boolean remove(Object o);
24 
25 
26     // Bulk Operations
27 
28     boolean containsAll(Collection<?> c);
29 
30     boolean addAll(Collection<? extends E> c);
31 
32     boolean removeAll(Collection<?> c);
33 
34     boolean retainAll(Collection<?> c);
35 
36     void clear();
37 
38 
39     // Comparison and hashing
40 
41     boolean equals(Object o);
42 
43     int hashCode();
44 }

----------------------------------------------------------------------------------

----------------------------------------------------------------------------------

 


免責聲明!

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



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