1. 程式人生 > >胡八一之Java(三):java集合概述

胡八一之Java(三):java集合概述

JAVA集合概述

(一)、Collection 和Iterator介面


import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;

public class Test{
	
	public static void main(String args[]){
     Collection c =new ArrayList();
     c.add("張三");
     c.add(6);
     System.out.println(c.size());
     c.remove("張三");
     System.out.println(c.size());
     System.out.println("集合中是否包括張三:"+c.contains("張三"));
     Collection books = new HashSet();
     books.add("三國演義");
     books.add("紅樓夢");
     System.out.println(books.size());
     books.remove("三國演義");
     System.out.println(books.size());
     System.out.println("集合中是否包括三國:"+books.contains("三國演義"));
     System.out.println("C集合是否包括books集合?"+c.containsAll(books));
     c.removeAll(books);
     System.out.println("c集合的元素"+c);
     c.clear();
     System.out.println("c集合的元素"+c);
     
     books.retainAll(c);
     System.out.println("books集合的元素"+books);
     
	
	}
}

雖然HashSet與ArrayList實現類不同,但當把他們當成Collection來使用時,使用add,remove,clear 方法時,它們沒有區別。

(二)使用Iterator介面遍歷集合元素

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

public class Test{
	
	public static void main(String args[]){

     Collection books = new HashSet();
     books.add("三國演義");
     books.add("紅樓夢");
     Iterator it = books.iterator();
     while(it.hasNext()){
    	 String book =(String)it.next();
    	 System.out.println(book);
    	 if(book.equals("紅樓夢")){
    		 //從集合中刪除上一次next方法返回的元素
    		 it.remove();
    	 }
    	 book ="haha";
    	 
     }
     System.out.println(books);
	
	}
}

Iterator必須依附於Collection物件,若有一個Iterator物件,則必然有一個與之關聯的Collection物件。Iterator提供了兩個方法迭代訪問Collection集合裡的元素,並可通過remove()方法來刪除上一次next()方法返回的集合元素。

當使用Iterator對集合元素進行迭代時,Iterator並不是把集合元素本身傳給了迭代變數,而是把這個集合元素的值傳給了迭代變數,所以修改迭代變數的值對集合元素沒有任何影響。

當實驗Iterator迭代訪問Collection元素 時,Collection集合裡的元素不能被改變,只有通過Iterator的remove方法來刪除上一次的next方法返回的集合元素才可以;否則會引發java.util.ConcurrentModificationException異常。

使用foreach迴圈遍歷元素

HashSet類

HashSet類具有以下特點:

不保證元素的排列順序    不是同步的,多個執行緒訪問時需要用程式碼控制    集合元素值可以是null

HashSet集合判斷兩個元素相等的標準是通過equals()方法比較相等,並且兩個物件的hashCode()方法的返回值也相等