java集合类详解和使用_Java 集合类详解
今天來看看“集合類”的概念。
集合可以看作是一個容器,比如,所有Java有關的書都可以看作是一個集合。對于集合中的各個對象很容易將其存放到集合中,也很容易將其從集合中取出來,還可以按照一定的順序將其擺放。Java中提供了不同的集合類,這些集合類具有不同的存儲對象的方式,并提供了相應的方法以方便用戶對集合進行遍歷,添加,刪除,以及查找指定的對象。
集合類又被稱作容器,提到容器大家很自然地就想到了數組,那么集合類和數組有哪些不同之處呢?首先,數組的長度是固定的,而集合的長度是可變的;其次,數組用來存放基本的數據類型,而集合用來存放對象的引用。常用的集合主要分為兩大類,Map類和Collection類,Collection類又包括Set類和List類,它們之間的繼承關系可以用下面的圖來表示:
Collection接口是層次結構中的根接口,其構成單位稱為元素。Collection接口通常不能直接使用,但提供了添加元素,刪除元素,管理數據的方法。從上面的繼承圖可以看出,Set和List類繼承了Collection接口,因此這些方法對Set和List類也是通用的。那么,接下來,我們看看Collection類的常用方法。
Collection集合的常用方法主要有以下幾種:
boolean add(Object element); 向集合中添加元素
void clear(); 清空集合
boolean contains(Object o); ?判斷集合中是否包含某元素
boolean isEmpty(); ? 判斷集合中是否有元素
Iterator iterator(); ?獲取集合所依賴的迭代器對象
boolean remove(Object o); ? 刪除集合中某個元素
int size(); ?獲取集合中元素的個數
Object[] toArray(); ?將集合轉換成數組
接下來我們看這些方法的使用。看以下程序:
import java.util.*;
public class CollectionTest01{
public static void main(String[] args){
//1.創建集合
Collection c=new ArrayList();
//2.添加元素
c.add(1);
c.add(new Integer(100));
c.add(new Object());
Customer cus=new Customer("JACK",20);
//3.獲取元素的個數
System.out.println(c.size()); //4
System.out.println(c.isEmpty()); //false
//4.將集合轉換成Object類型的數組
Object[] objs=c.toArray();
for(int i=0;i
System.out.println(objs[i]);
}
//5.清空
c.clear();
System.out.println(c.size()); //0
//6.判斷集合是否為空
System.out.println(c.isEmpty()); //true
}
}
class Customer{
String name;
int age;
Customer(String name,int age){
this.name=name;
this.age=age;
}
//重寫Object中的toString方法
public String toString(){
return "Customer[name="+name+",age="+age+"]";
}
}
編譯后運行輸出:
3
false
1
100
java.lang.Object@15db9742
0
true
上述代碼中,
1.創建集合,這里注意,因為Collection是一個接口,所以不能直接Collection c=new Collection(); 我們可以尋找它下面的一個實現類(參考上面的繼承類的圖)ArrayList,即Collection c=new ArrayList();
2.添加元素, c.add(1);這里用到了自動裝箱的知識,忘記了的翻到前面看一看啊,c.add(new Object());相當于Object o=new Object(); c.add(o);也就是說Collection只能存儲引用類型。之后我們自己給定一個其他類型Customer,并且重寫Object中的toString()方法,然后在main()方法中添加元素c.add(cus);
3.獲取元素的個數,使用c.size();
4. 將集合轉換成Object類型的數組,使用的方法為toArray(); 之后使用for循環進行遍歷;輸出為
1
100
java.lang.Object@15db9742
0
5.清空集合,使用c.clear(); 然后再次獲取元素個數之后會發現System.out.println(c.size());輸出為0;
6.中間我們穿插了c.isEmpty(); 即判斷集合是否為空;
接下來我們看看迭代器iterator()方法。看以下代碼:
import java.util.*;
public class CollectionTest02{
public static void main(String[] args){
//創建集合對象
Collection c=new LinkedList();
//添加元素
c.add(100);
c.add(3.14);
c.add(false);
//迭代,遍歷
//1.獲取迭代器對象
Iterator it=c.iterator();
//2.開始調用方法,完成遍歷,迭代
while(it.hasNext()){
Object element=it.next();
System.out.println(element);
}
/* //或者使用for循環
for(Iterator it=c.iterator();it.hasNext();){
Object o=it.next();
System.out.println(o);
} */
}
}
在上述代碼中,
1.獲取迭代器對象,已經創建了集合對象c,進行迭代時直接調用iterator()方法,也就是說,迭代器=c.iterator(); 這里c可能為ArrayList,HashSet,LinkedList各種集合對象,這樣調用iterator()就實現了不同的迭代器,但是所有的迭代器都實現了Iterator接口,所以可以直接Iterator it=c.iterator();也就是說迭代器是直接面向接口編程,看不出具體的實現類,it是引用,保存了內存地址,指向堆中的迭代器對象。
2.開始調用方法,完成遍歷,迭代
迭代器Iterator里面有三個方法,hasNext()判斷迭代器里面是否有更多的元素,如果有,返回true,否則返回false; next()方法將迭代器向下移動一位,并且取出指向的元素,但要注意,調用next()方法之前,為了防止出現問題,必須先調用hasNext()方法判斷是否還有元素。這里介紹了while和for循環兩種遍歷方式。
好了,今天的內容講到這里,如果覺得有用,歡迎分享給更多人!
總結
以上是生活随笔為你收集整理的java集合类详解和使用_Java 集合类详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的误差条形图的解释_如何使用
- 下一篇: cascade在java_【Java基础