Java 中的集合接口——List、Set、Map
什么叫集合:集合就是Java API所提供的一系列類的實例,可以用於動態存放多個對象。這跟我們學過的數組差不多,那為什么我們還要學集合,我們看看數組跟集合有什么區別:
數組:長度固定,遍歷速度快 可以存儲基本類型和引用類型;
集合:長度不固定,只能存儲引用類型對象;
從數組跟集合的特點我們很明顯的看出,數組有一定的局限性,如果我們需要不定期的往我們的數據中存儲數據,數組就滿足不了我們的要求。
Java集合框架提供了一套性能優良、使用方便的接口和類,它們位於java.util包中
Collection 接口存儲一組不唯一,無序的對象 ;List 接口存儲一組不唯一,有序(插入順序)的對象;
Set 接口存儲一組唯一,無序的對象;Map接口存儲一組鍵值對象,提供key到value的映射
對於collection接口中的一些方法,我們用實際代碼來學習一下吧:
import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; /** * Collection * 集合基本操作 * 添加 * 刪除 * 遍歷 * 判斷 * 查找 * @author shen_hua * */ public class CollectionDemo { public static void main(String[] args) { Collection<String> collection=new ArrayList<String>(); System.out.println("元素個數:"+collection.size()); //添加元素 collection.add("aaa"); collection.add("bbb"); collection.add("ccc"); System.out.println("增加后元素的個數:"+collection.size()); // //刪除元素 // collection.remove("bbb"); // System.out.println("刪除后元素的個數:"+collection.size()); // collection.clear(); // System.out.println("清空后元素的個數:"+collection.size()); //增強for循環遍歷 System.out.println("增強for循環輸出:"); for (Object object : collection) { System.out.println(object); } //迭代器遍歷 System.out.println("迭代器遍歷:"); Iterator<String> iterator=collection.iterator(); while(iterator.hasNext()){ System.out.println(iterator.next()); } //判斷是否包含 Boolean boolean1=collection.contains("aaa"); System.out.println(boolean1); //判斷是否為空 Boolean boolean2=collection.isEmpty(); System.out.println(boolean2); } }
Iterator接口:所有實現了Collection接口的集合類都有一個iterator()方法用以返回一個實現了Iterator接口的對象: Iterator it = coll.iterator();
Iterator迭代器的工作原理:Iterator是專門的迭代輸出接口。所謂的迭代輸出就是將元素進行判斷,判斷是否有內容,如果有內容則把內容取出。 Iterator對象稱作迭代器,用以方便的實現對集合內元素的遍歷操作。
凡是能用 Iterator 迭代的集合都可以用JDK5.0中增強的for循環來更簡便的遍歷。
List接口: