1. java集合類用于存放數(shù)量不等的多個(gè)對(duì)象
2. Java集合可分為三類: Set, List, Map.其中Set代表無序的,不可重復(fù)的集合;List代表有序的,可重復(fù)的集合;Map代表具有映射關(guān)系的集合;
3. java1.5之前,java集合會(huì)丟失集合中對(duì)象的數(shù)據(jù)類型,把所有對(duì)象當(dāng)成Object類型處理.
4. java集合主要由兩個(gè)接口派生而出:Collection和Map
=================================================================
1. Collection接口
Iterator接口隱藏了各種Conllection實(shí)現(xiàn)類的底層細(xì)節(jié),向應(yīng)用程序提供了遍歷Conllection集合的統(tǒng)一編程接口.Iterator僅用于遍歷集合,且必須依附于Collection對(duì)象.
Iterator接口采用快速失敗機(jī)制,一旦在迭代的時(shí)候檢測(cè)到該集合已經(jīng)被修改,通常是程序中的另外的線程,程序立即引發(fā)異常.
代碼清單:CollectionTest.java
package Test.test;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CollectionTest {
public static void main(String[] args) {
Collection books = new HashSet();
books.add("Java基礎(chǔ)");
books.add("J2EE基礎(chǔ)");
books.add("J2EE高級(jí)");
System.out.println(books);//Collection的實(shí)現(xiàn)類重寫了toString()方法
Iterator it = books.iterator();
while (it.hasNext()) {
String book = (String)it.next();
System.out.println("book:"+book);
if ("J2EE基礎(chǔ)".equals(book)) {
//it.remove();//remove方法刪除上一次next方法返回的元素
books.remove(book);
// 在Iterator 迭代books時(shí),另一個(gè)線程去修改books元素,則會(huì)引發(fā)java.util.ConcurrentModificationException
// 異常,而同樣的如果要?jiǎng)h除的是最后一個(gè)對(duì)象,就不會(huì)發(fā)生異常.
}
}
System.out.println(books);
}
}