閱讀510 返回首頁    go 阿裏雲 go 技術社區[雲棲]


java基礎之集合類

一、Java集合類是什麼?java集合類型主要有哪些?

首先看一張概念圖,這裏囊括了集合類的大部分關係及內容 
這裏寫圖片描述 
集合類存放的都是對象的引用,而非對象本身,出於表達上的便利,我們稱集合中的對象就是指集合中對象的引用(reference)。 
通俗地講,集合類就是把一些對象的引用放在一起(特別是我們需要存放一些數據卻不知道個數的情況下),便於我們直接從集合中使用這些引用。通常來說,集合內所包含的引用,都是具有某種特性。 
集合類型主要有3種:set(集)、list(列表)和map(映射)。

二、set、list和map的區別有哪些? 
用一個表格總結一下

List和Set是繼承了Collection接口,List有序且允許元素重複,Set不允許元素重複。ArrayList、LinkedList和Vector是List的三個主要的實現類,HashSet和TreeSet是Set的兩個主要的實現類。 
Map則是與List和Set有所不同,區別就在於Map是鍵與值之間的關係,而其中的鍵我們就可以看做是一個集合。其中的鍵是必須唯一的,而值可以重複。如果你想學習Java可以來這個群,首先是一二六,中間是五三四,最後是五一九,裏麵有大量的學習資料可以下載。 

三、詳細解析

1、Collection常用方法

  Collection coll=new ArrayList();  
    Collection coll2=new ArrayList();  
    Object[] a = {new Integer(1)};  
    //單元素操作  
    boolean b = coll.add("123");//添加元素  
    boolean b1 = coll.remove("123");//刪除元素  
    //查詢操作  
    int i = coll.size();//返回當前集合中元素的數量  
    boolean b2 = coll.isEmpty();//判斷集合中是否有任何元素  
    boolean b3 = coll.contains("123");//查找集合中是否含有對象"123"  
    Iterator ite = coll.iterator();//返回一個迭代器,用來訪問集合中的各個元素  
    //組操作  
    boolean b4 = coll.containsAll(coll2);//查找集合中是否含有集合coll2中所有元素  
    boolean b5 = coll.addAll(coll2);//將集合coll2中所有元素添加給該集合  
    coll.clear();//刪除集合中所有元素  
    boolean b6 = coll.removeAll(coll2);//從集合中刪除集合coll2中的所有元素  
    boolean b7 = coll.retainAll(coll2);//從集合中刪除集合coll2中不包含的元素  
    //Collection轉換為Object數組  
    Object[] obj = coll.toArray();//返回一個內含集合所有元素的array  
    //返回一個內含集合所有元素的array。運行期返回的array和參數a的型別相同,需要轉換為正確型別。  
    Object[] obj1 = coll.toArray(a);  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

2、List的常見用法

List普通用法:

    List list = new ArrayList();  
    //添加元素  
    list.add(1);  
    //在2處添加元素  
    list.add(2, 1);  
    //添加集合  
    list.addAll(new ArrayList());  
    //在3處添加集合  
    list.addAll(3,new ArrayList());  
    //取得1處的元素  
    Object obj = list.get(1);  
    //返回對象"1"第一次出現的位置,沒有則為-1  
    int i= list.indexOf(1);  
    //返回對象"1"最後一次出現的位置,沒有則為-1  
    int j= list.lastIndexOf(1);  
    //刪除2位置的元素  
    list.remove(2);  
    //將1處的對象改為"2"  
    list.set(1, 2);  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

List特殊用法:

  List list = new ArrayList();  
    //返回一個列表迭代器,用來訪問列表中的元素  
    ListIterator listIterator = list.listIterator();  
    //返回一個列表迭代器,用來從指定位置2開始訪問列表中的元素  
    ListIterator listIterator2 = list.listIterator(2);  
    //從1(包含)到2(不包含)範圍中各個元素的列表視圖  
    List subList = list.subList(1, 2);  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

LinkedList的特殊用法:

    //構建一個空的鏈接列表  
    LinkedList list = new LinkedList();  
    //構建一個空的鏈接列表,並且添加集合list的所有元素  
    LinkedList list1 = new LinkedList(list);  
    //將對象1加到列表開頭,addLast()加到最後  
    list.addFirst(1);  
    //獲得第一個元素,getLast()獲得最後一個元素  
    Object obj = list.getFirst();  
    //移除第一個元素,removeLast()移除最後一個元素  
    list.removeFirst();  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

ArrayList的特殊用法:

  ArrayList list = new ArrayList();  
    //將ArrayList對象容量增加5  
    list.ensureCapacity(5);  
    //整理ArrayList對象容量為列表當前大小,程序可使用這個操作減少ArrayList對象存儲空間.  
    list.trimToSize();  

最後更新:2017-04-22 10:00:29

  上一篇:go 細數阿裏雲在使用 Docker 過程中踩過的那些坑
  下一篇:go Java 代碼性能優化