Java基礎——collection介面(一),javacollection
一、Collection介面的定義public interfaceCollection<E>extends iterable<E> 從介面的定義中可以發現,此介面使用了泛型的定義,在操作時必須指定具體的操作類型。這樣可以保證類集操作的安全性,避免發生ClassCastException異常。Collection是最基本的集合介面,一個Colletion代表一組Object,即Collection的元素(Elements)。Java JDK提供的類都是繼承自Collection的“子介面”如List和Set。所有實現Collection介面的類都必須提供兩個標準的建構函式:1.無參數的建構函式用於建立一個空的Collection;2.有一個Collection參數的建構函式用於建立一個新的Collection,這個行的Collection與傳統的Collection有相同的元素。這個建構函式允許使用者複製一個Collection。 回顧:數組
1 int [] x=new int[5]; //聲明一個數組,長度為5,每個元素都是 int型2 Student [] list=new Student[5]; //聲明一個數組,長度為5,每個元素都是 Student 型
二、Collection常用的方法
boolean add(E e) //注意它的參數類型 boolean addAll(Collection<? extends E> c) 將指定 collection 中的所有元素都添加到此 collection 中 boolean remove(Object o) boolean contains(Object o) //判斷集合中指定的元素是否存在 boolean containsAll()// 如果此 collection 包含指定 collection 中的所有元素,則返回 true。 boolean removeAll(Collection<?> c) boolean retainAll(Collection<?> c) 僅保留此 collection 中那些也包含在指定 collection 的元素(可選操作)(取交集) clear() size() toArray() boolean isEmpty() Iterator<E> iterator() 返回在此 collection 的元素上進行迭代的迭代器。
二、List與set常用方法
List實作類別包括:LinkedList,Vector,ArrayList注意:List列表借口,繼承於Collection,可以按索引的順序訪問,有索引的Collection。具有列表的功能,元素順序均是按添加的先後進行列表的。這裡的 Collection、List、Set和Map都是介面(Interface),不是具體的類實現。List list = new ArrayList(); 這是我們平常經常使用的建立一個新的List的語句,在這裡 List是介面,ArrayList才是具體的類。
ListList 介面擴充了 Collection 並聲明儲存一系列元素的類集的特性。使用一個基於零的下 標,元素可以通過它們在列表中的位置被插入和訪問。一個列表可以包含重複元素。除了由 Collection 定義的方法之外,List 還定義了一些它自己的方法。再次注意當類集不能被修改時,當一個對象與另一個不相容,例 如當企圖將一個不相容的對象加入一個類集中時,將產生 ClassCastException 異常。對於由 Collection 定義的 add()和 addAll()方法,List 增加了方法 add(int, Object)和 addAll(int, Collection)。 這些方法在指定的下標處插入元素。由 Collection 定義的 add(Object)和 addAll(Collection)的 語義也被 List 改變了,以便它們在列表的尾部增加元素。為獲得在指定位置儲存的對象, 可以用對象的下標調用 get()方法。為給類表中的一個元素賦值,可以調用 set()方法,指定被改變的對象的下標。調用 indexOf()或 lastIndexOf()可以得到一個對象的下標。通過調用 subList()方法,可以獲得列表的一個指定了開始下標和結束下標的子列表。此方法使得 列表處理十分方便。
Setset集合介面定義了一個集合。它擴充了 Collection並說明了不允許複製元素的類集的特性。 因此,如果試圖將複製元素加到集合中時,add()方法將返回 false。它本身並沒有定義任何 附加的方法。 總結:List 集合的特點1) 元素有序 (可以按索引訪問)2) 元素可以重複,可以存放多個null值Set 集合的特點:1) 元素無序(不可以按索引訪問)2)元素不能重複,只能有一個null值 代碼執行個體:
1 /*List集合的特有特性 2 * 3 *public interface List<E>extends Collection<E> 4 *-- add(int index, E element) 在列表的指定位置插入指定元素 5 *-- addAll(int index, Collection<? extends E> c) 6 *-- E get(int index) //返回列表中指定位置的元素。 7 *-- int indexOf(Object o) // 返回此列表中第一次出現的指定元素的索引 8 *-- listIterator() 9 *-- e set(int index, E element) // 用指定元素其他清單中指定位置的元素10 *-- void remove(int position) 移除指定位置的元素11 *-- List<E> subList(int fromIndex, int toIndex ) 類似substring()12 */13 import java.util.ArrayList;14 15 class CollT {16 public static void main(String[] args) {17 ArrayList<String> list = new ArrayList<String>();18 list.add("Java"); // 下標是019 list.add("Class"); // 下標是120 list.add("Array"); // 下標是221 list.add("Collection"); // 下標是322 list.add("List"); // 下標是423 list.add("Set"); // 下標是524 System.out.println(list.subList(0, 3));// 注意不包含下標是3的25 }26 }