java_SE(Day15)_集合1

1、集合類概述:java

  1.爲何出現集合類?android

    面嚮對象語言對事物的體現都是以對象的形式,因此爲了方便對多個對象的操做,Java就提供了集合類。面試

  2.數組和集合類同是容器,有何不一樣?數組

     數組雖然也能夠存儲對象,但長度是固定的;集合長度是可變的。數組中能夠存儲基本數據類型,集合只能存儲對象學習

  3.集合類的特色測試

     集合只用於存儲對象,集合長度是可變的,集合能夠存儲不一樣類型的對象spa

2、集合的繼承體系圖解:code

  

3、學習集合體系,首先咱們先學習他們的「老大」:Collection,查詢它的API文檔。對象

  1.Collection 位於java.util包下,並且是一個接口?!且文檔中寫到:JDK 不提供此接口的任何直接 實現:它提供更具體的子接口(如 SetList)實現。即並無實現類,而是靠子接口去實現類。blog

  2.Collection:是集合的頂層接口,它的子體系有重複的,有惟一的,有有序的,有無序的。(後面會慢慢的講解)

  3. Collection的功能概述:

    * 1:添加功能
    * boolean add(Object obj):添加一個元素
    * boolean addAll(Collection c):添加一個集合的元素
    * 2:刪除功能
    * void clear():移除全部元素
    * boolean remove(Object o):移除一個元素
    * boolean removeAll(Collection c):移除一個集合的元素(是一個仍是全部)
    * 3:判斷功能
    * boolean contains(Object o):判斷集合中是否包含指定的元素
    * boolean containsAll(Collection c):判斷集合中是否包含指定的集合元素(是一個仍是全部)
    * boolean isEmpty():判斷集合是否爲空
    * 4:獲取功能
    * Iterator<E> iterator()(重點)
    * 5:長度功能
    * int size():元素的個數
    * 面試題:數組有沒有length()方法呢?字符串有沒有length()方法呢?集合有沒有length()方法呢?
    * 6:交集功能
    * boolean retainAll(Collection c):兩個集合都有的元素?思考元素去哪了,返回的boolean又是什麼意思呢?
    * 7:把集合轉換爲數組
    * Object[] toArray()
    */

  4.基本功能測試

 1 import java.util.ArrayList;
 2 import java.util.Collection;
 3 
 4 public class CollectionDemo {
 5     public static void main(String[] args) {
 6         // 測試不帶All的方法
 7 
 8         // 建立集合對象
 9         // Collection c = new Collection(); //錯誤,由於接口不能實例化,因爲是並沒有實現類的頂級接口。咱們得找他的子接口,以子接口List的實現類ArrayList爲例。
10         Collection c = new ArrayList();//正確
11 
12         // boolean add(Object obj):添加一個元素
13         // System.out.println("add:"+c.add("hello"));
14         c.add("hello");
15         c.add("world");
16         c.add("java");
17 
18         // void clear():移除全部元素
19         // c.clear();
20 
21         // boolean remove(Object o):移除一個元素
22         // System.out.println("remove:" + c.remove("hello"));
23         // System.out.println("remove:" + c.remove("javaee"));
24 
25         // boolean contains(Object o):判斷集合中是否包含指定的元素
26         // System.out.println("contains:"+c.contains("hello"));
27         // System.out.println("contains:"+c.contains("android"));
28 
29         // boolean isEmpty():判斷集合是否爲空
30         // System.out.println("isEmpty:"+c.isEmpty());
31 
32         //int size():元素的個數
33         System.out.println("size:"+c.size());
34         
35         System.out.println("c:" + c);
36     }
37 }

  *另外根據ArrayList的add方法的源碼發現始終返回true,可發現這是個可重複集合類。

  *直接打印ArrayList對象,會顯示出他集合內的元素,可發現,它重寫了toString方法。

  *c1.removeAll(c2)  只要c2的一個元素被移除了,就返回true

  *c1.containsAll(c2) 得包含c2全部

  *c1.retainAll(c2):

    c1,c2兩集合,c1,c2作交集,最終交集保存在調用者c1內,返回值是c1是否改變過,改變過則爲true 不然false

相關文章
相關標籤/搜索