1. 程式人生 > 其它 >Java學習筆記114——集合類—collection介面的成員方法

Java學習筆記114——集合類—collection介面的成員方法

集合類——collection介面的成員方法

Collection:是集合中的頂層介面,它存在由它擴充套件開來的繼承體系,為什麼要分出很多不同的集合? 根據元素是否唯一,是否有序來區分這麼多集合(後面的課程中會一一介紹)

Collection:

1、新增功能

boolean add(Object obj) 確保此集合包含指定的元素(可選操作)。 boolean addAll(Collection c) 將指定集合中的所有元素新增到此集合(可選操作)。

2、刪除功能

boolean remove(Object o) 從該集合中刪除指定元素的單個例項(如果存在)(可選操作)。 boolean removeAll(Collection<?> c)

刪除指定集合中包含的所有此集合的元素(可選操作)。 void clear() 從此集合中刪除所有元素(可選操作)。

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) 僅保留此集合中包含在指定集合中的元素(可選操作)。

7、將集合轉換成陣列

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);
   }
}