Java學習筆記114——集合類—collection介面的成員方法
Collection:是集合中的頂層介面,它存在由它擴充套件開來的繼承體系,為什麼要分出很多不同的集合? 根據元素是否唯一,是否有序來區分這麼多集合(後面的課程中會一一介紹)
Collection:
1、新增功能
boolean add(Object obj) 確保此集合包含指定的元素(可選操作)。 boolean addAll(Collection c) 將指定集合中的所有元素新增到此集合(可選操作)。
2、刪除功能
boolean remove(Object o) 從該集合中刪除指定元素的單個例項(如果存在)(可選操作)。 boolean removeAll(Collection<?> c)
3、獲取功能
Iterator<E> iterator() 返回此集合中的元素的迭代器。
4、判斷功能
boolean contains(Object o) 如果此集合包含指定的元素,則返回 true 。 boolean containsAll(Collection<?> c) 如果此集合包含指定 集合中的所有元素,則返回true。 boolean isEmpty() 如果此集合不包含元素,則返回 true 。
5、獲取長度功能
int size() 返回此集合中的元素數。
6、求交集功能
boolean retainAll(Collection<?> c) 僅保留此集合中包含在指定集合中的元素(可選操作)。
Object[] toArray() 返回一個包含此集合中所有元素的陣列。
Collection是介面,List也是介面,ArrayList才是類,想例項化一個Collection介面就需要用到 ArrayList類來實現。
public class CollectionDemo1 {
public static void main(String[] args) {
//通過子類的形式建立物件,這叫介面多型
Collection c = new ArrayList();
//boolean add(Object obj) 確保此集合包含指定的元素(可選操作)。返回值為boolean型別,true代表成功新增
System.out.println(c.add("hello"));
System.out.println(c.add("hello"));//說明ArrayList可以有重複的元素
c.add(20);//Collection接口裡面做了自動裝箱,把int型別的資料自動轉換成了Integer型別
c.add(12.34);
//void clear()
//從此集合中刪除所有元素(可選操作)。
// c.clear();
//boolean remove(Object o)
//從該集合中刪除指定元素的單個例項(如果存在)(可選操作)。
//只移除一個符合條件的
System.out.println("從該集合中刪除指定元素" + c.remove("hello"));
//boolean contains(Object o)
//如果此集合包含指定的元素,則返回 true 。
System.out.println(c.contains("hello"));
//boolean isEmpty()
//如果此集合不包含元素,則返回 true 。
System.out.println(c.isEmpty());
//獲取長度功能int size()
// 返回此集合中的元素數。
System.out.println(c.size());
//String toString()
//返回此集合的字串表示形式。 AbstractCollection類中的toString()方法
//ArrayList本身是,沒有toString方法的,而是繼承了AbstractList類裡面的方法
/**
* java.lang.Object
* java.util.AbstractCollection<E>
* java.util.AbstractList<E>
* java.util.ArrayList<E>
*/
System.out.println("集合c: " + c);
}
}
boolean addAll(Collection c) boolean型別 把c2新增到c1中 boolean removeAll(Collection c) boolean型別 移除c1中與c2有交集的元素 boolean containsAll(Collection c) boolean型別 判斷c1中是否包含c2的全部元素 boolean retainAll(Collection c) boolean型別 保留c1中與c2有交集的元素
public class CollectionDemo2 {
public static void main(String[] args) {
//建立一個集合物件
Collection c1 = new ArrayList();
//向集合中新增元素
c1.add("hello");
c1.add("world");
c1.add("java");
c1.add("hadoop");
c1.add("hive");
// c1.add("spark");
//定義另一個集合
Collection c2 = new ArrayList();
c2.add("hello");
c2.add("world");
c2.add("hive");
c2.add("spark");
System.out.println("c1: "+c1);
System.out.println("c2: "+c2);
System.out.println("===============================");
//boolean addAll(Collection c)
// System.out.println("將c2新增到從c1中:");
// System.out.println(c1.addAll(c2));
// System.out.println("c1: "+c1);
// System.out.println("c2: "+c2);
// System.out.println("===============================");
//boolean removeAll(Collection c) 刪除指定集合中包含的所有此集合的元素(可選操作)。
// 此呼叫返回後,此集合將不包含與指定集合相同的元素。
// System.out.println(c1.removeAll(c2));
// System.out.println("c1: "+c1);
// System.out.println("c2: "+c2);
// System.out.println("===============================");
// //boolean containsAll(Collection c)如果此集合包含指定 集合中的所有元素,則返回true。
// System.out.println(c1.containsAll(c2));
System.out.println("===============================");
//boolean retainAll(Collection c)
//僅保留此集合中包含在指定集合中的元素(可選操作)。
// 換句話說,從該集合中刪除所有不包含在指定集合中的元素。
//假設有兩個集合 c1,c2
//c1對c2做交集,最終的結果儲存在c1中,c2不變
//並且c1中刪除與c2不是共同的其他元素
// System.out.println(c1.retainAll(c2));
// System.out.println("c1: "+c1);
// System.out.println("c2: "+c2);
}
}