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