【Java】集合_學習筆記

來源:互聯網
上載者:User

標籤:images   move   重複   ref   添加   with   變數   app   rem   

一、集合

  1、集合類也稱容器類,主要負責儲存、盛裝其他資料。

  2、集合可以儲存數量不確定的資料,儲存具有映射關係的資料(也稱關聯陣列)。

  3、Java5後提供一些多安全執行緒的集合類,放在java.util.concurrrent。(utility的縮寫,意為多用途的,實用的)

  4、集合只能儲存對象(實際是對象的引用,習慣稱對象)。

  5、Java的集合主要由Collection和Map兩個介面派生而出,Map介面的實作類別用於儲存關聯陣列,Set集合元素不可重複,通過元素本身訪問,Map集合可以通過key值訪問,List集合可以通過下標訪問。

  

二、Collection介面

  1、Collection介面是Set、Queue、List介面的父介面,所以它的方法也可以操控著三個集合。

    a、boolean add(Object o):向指定集合裡添加一個元素,指定集合對象因為這個方法改變,返回true。

    b、boolean addAll(Collection c):把集合c裡的所有元素添加到指定集合裡,指定集合對象因為這個方法改變,返回true。

    c、void clean():清除指定集合的所有元素,將集合長度變為0。

    d、boolean contains(Object o):返回集合裡是否包含指定元素。

    e、boolean containsAll(Collection c):返回集合是否包含集合c裡的所有元素。

    f、boolean isEmpty();返回集合是否為空白,長度為0返回true,否則false。

    g、boolean remove(Object o):刪除集合中的指定元素o,當集合中包含一個或多個元素o時,刪除第一個合格元素,返回true。

    h。boolean removeAll(Collection c):從集合裡刪除集合c包含的所有元素,刪除一個或一個以上的元素,返回true。

    i、boolean retainAll(Collection c):從集合裡刪除集合c以外的元素,指定集合對象因為這個方法改變,返回true。

    j、in size():返回集合裡的元素個數、

    k、Object[] toArray():把集合轉換為一個數組,集合元素變為對應數組元素。

  2、使用Foreach迴圈遍曆集合元素  

  代碼如下:

 1 import java.util.HashSet; 2 import java.util.Objects; 3  4 public class MyClass { 5     public static void main(String[] args) { 6         //HashSet()類應該是實現了Collection介面的一個類,否則不可能執行個體化 7         Collection names = new HashSet(); 8         //添加的應該是引用,這裡直接放字串,是在常量池裡? 9         names.add("xiaoming");10         names.add("xiaogang");11         names.add("xiaoli");12         for(Object theName_obj:names){13             String theName = (String) theName_obj;14             System.out.println(theName);15             //下面這句話會拋出ConcurrentModificationException,因為theName是一個迭代變數,不是元素本身16             if(theName.equals("xiaoli")){17                 names.remove(theName);18             }19         }20     }21 }

 

   運行結果:

 1 xiaoming 2 xiaoli 3 Exception in thread "main" java.util.ConcurrentModificationException 4     at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) 5     at java.util.HashMap$KeyIterator.next(HashMap.java:1461) 6     at com.example.MyClass.main(MyClass.java:15) 7     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 8     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 9     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)10     at java.lang.reflect.Method.invoke(Method.java:498)11     at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)12 13 Process finished with exit code 1

 

【Java】集合_學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.