1. 程式人生 > 程式設計 >JAVA中的容器 2

JAVA中的容器 2

1.容器類

初步瞭解容器後,我們來講講容器類,又被稱作集合框架.

首先我們來認識一下常見的兩種容器體系

集合框架的簡單體系如下:

  • Collection 儲存單個資料的容器體系,它也是容器體系的上層介面,其下有兩個子介面:

1.Set 沒有順序,不可重複 2.List 有順序,可以重複

  • Map 鍵值對形式資料的容器體系

2.Collection

我們來具體嘗試下collection中的一些常用方法

首先我們新建類在main的主方法中new一個collection物件

Collection col=new ArrayList();
//以此物件使用其中的方法
複製程式碼

1.add 新增

col.add(123);
col.add("哈哈");
col.add(false);
col.add('c');
複製程式碼

容器可以儲存多個資料型別,不同於陣列

2.size 返回容器大小

System.out.println(col.size());
複製程式碼

即返回容器裡儲存的資料數量

3.remove 移除

col.remove(123);
System.out.println(col);
複製程式碼

會移除容器中的資料(123)

4.iterator 遍歷

Iterator it=col.iterator();
//2.判斷是否存在下一個元素
while(it.hasNext()){
//3.獲取元素
System.out.println(it.next()); //獲取下一個元素 } 複製程式碼

遍歷輸出容器裡全部資料

還有一些方法感興趣的同學也可以自己嘗試一下

3.List介面

list作為子介面,有序(索引)可重複,新增了一些根據索引操作的方法

接下來展示方法實際中的應用

public class ListDemo01 {
	public static void main(String[] args) {
		//新增泛型  增可讀性
		List<Integer> ls=new ArrayList();
		//儲存班級學生分數  
		ls.add(2);
		ls.add(0);
		ls.add(1
); ls.add(4); ls.add(3); System.out.println(ls); //add(index,element) 新增 ls.add(3,3); System.out.println(ls); //E set(int index,E element) 修改 ls.set(5,5); System.out.println(ls); // E get(int index) 獲取 System.out.println(ls.get(2)); // E remove(int index) //當容器中的資料也是整數時候,以索引為主 //下課測試,如果出現多個相同的值,移出時候刪除多個,還是第一個 System.out.println(ls.remove(2)); System.out.println(ls); //List<E> subList(int fromIndex,int toIndex) 不包含結束索引 System.out.println(ls.subList(1,4)); System.out.println(Arrays.toString(ls.toArray())); System.out.println(ls.toArray()[1]); //普通for for(int i=0;i<=ls.size()-1;i++){ System.out.println(ls.get(i)); } } } 複製程式碼

4.ArrayList

ArrayList是List的子類,它與HashSet相反,允許存放重複元素,因此有序.

ArrayList的底層實現是由可變陣列(通過一些方法)實現的,通過陣列拷貝實現容器可以根據內容進行動態擴容;

ArrayList的優點是遍歷和獲取的效率高,因為我們可以根據索引直接定位到我們需要的元素;

ArrayList的缺點是增刪的效率低;

當ArrayList的容量不足以繼續存放物件時,會自動的擴容,每次擴容原先容器大小的1.5倍;

ArrayList可以使用多型

在單執行緒環境下,在大量做查詢的業務下,適合使用ArrayList

5.在定義一個容器時為什麼使用泛型

在JDK1.4之前型別不明確:

裝入集合的型別都被當做Object對待,從而失去自己的實際型別.從集合中取出時往往需要轉型,效率低,容易產生錯誤.

  • 使用泛型之後可以增強程式的可讀性和穩定性.
  • 使用泛型,保留了容器中元素的型別,安全省心的使用容器.

Map容器明天再與大家結合Set介面進行分析比較 拜拜