Java 中的集合接口——List、Set、Map


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接口:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM