天天看點

集合

  

  集合和數組比較像,也是一種,容器但是有很大差別

  數組的長度在初始化時時定下來的,不可變了,那麼以後如果項目需求改變,原本需要10個學生資訊,現在要20個,那怎麼辦?

  是以就引出了集合

  集合的最根上的接口是collection,其子接口有list和set。

  集合和數組差不多,但是你可以不需要定義它的長度,你想什麼時候往裡面加元素,删除元素都可以。

  

  Java容器類類庫的用途是“儲存對象”,并将其劃分為兩個不同的概念:

 1)  Collection 。 一組對立的元素,通常這些元素都服從某種規則。List必須保持元素特定的順序,而Set 不能有重複元素。

 2)  Map 。 一組 成對的“鍵值對”對象。初看起來這似乎應該是一個Collection ,其元素是成對的對象,但是這樣的設計實作起來太笨拙了,于是我們将Map明确的提取出來形成  一個獨立的概念。另一方面,如果使用Collection 表示Map的部分内容,會便于檢視此部分内容。是以Map一樣容易擴充成多元Map ,無需增加新的概念,隻要讓Map中的鍵  值對的每個“值”也是一個Map即可。 

  Collection和Map的差別在于容器中每個位置儲存的元素個數。Collection 每個位置隻能儲存一個元素(對象)。此類容器包括:List ,它以特定的順序儲存一組元素;Set 則  是元素不能重複。 

  Map儲存的是“鍵值對”,就像一個小型資料庫。我們可以通過“鍵”找到該鍵對應的“值”。 

  ?     Collection – 對象之間沒有指定的順序,允許重複元素。 

  ?     Set –  對象之間沒有指定的順序,不允許重複元素 ?     List–  對象之間有指定的順序,允許重複元素,  并引入位置下标。

  ?     Map –  接口用于儲存關鍵字(Key)和數值(Value)的集

合,集合中的每個對象加入時都提供數值和關鍵字。Map 接口既不繼承 Set 也不繼承 Collection。  

  List、Set、Map共同的實作基礎是Object數組

import java.util.*; 

public class CollectionToArray {  

  public static void main(String[] args) {     

    Collection collection1=new ArrayList();  //建立一個集合對象  

    collection1.add("000");          //添加對象到Collection集合中       

    collection1.add("111");   

    collection1.add("222"); 

    System.out.println("集合collection1的大小:"+collection1.size());  

    System.out.println("集合collection1的内容:"+collection1);   

    collection1.remove("000");//從集合collection1中移除掉 "000" 這個對象   

    System.out.println("集合collection1移除 000 後的内容:"+collection1);   

    System.out.println("集合collection1中是否包含000 :"+collection1.contains("000"));   

    System.out.println("集合collection1中是否包含111

:"+collection1.contains("111"));   

    Collection collection2=new ArrayList();   

    collection2.addAll(collection1);        //将collection1 集合中的元素全部都加到collection2中   

    System.out.println("集合collection2的内容:"+collection2);   

    collection2.clear();//清空集合 collection1 中的元素   

    System.out.println("集合collection2是否為空 :"+collection2.isEmpty());           //将集合collection1轉化為數組

            

             Object s[]= collection1.toArray();   

    for(int i=0;i<s.length;i++){    System.out.println(s[i]);   

    }  

  }

 } 

運作結果為: 

集合collection1的大小:3 

集合collection1的内容:[000, 111, 222] 

集合collection1移除 000 後的内容:[111, 222] 

集合collection1中是否包含000 :false 

集合collection1中是否包含111 :true

集合collection2的内容:[111, 222] 集合collection2是否為空 :true

111

222 

這是一個百度文庫的,感覺看了比較易懂,留做筆記。