C語言中文網 目錄

Java Map集合詳解

< 上一頁Java Set集合 Java Collection類下一頁 >

Map 是一種鍵-值對(key-value)集合,Map 集合中的每一個元素都包含一個鍵對象和一個值對象。其中,鍵對象不允許重復,而值對象可以重復,并且值對象還可以是 Map 類型的,就像數組中的元素還可以是數組一樣。

Map 接口主要有兩個實現類:HashMap 類和 TreeMap 類。其中,HashMap 類按哈希算法來存取鍵對象,而 TreeMap 類可以對鍵對象進行排序。

Map 接口中提供的常用方法如表 1 所示。

表1 Map接口的常用方法
方法名稱 說明
V get(Object key) 返回 Map 集合中指定鍵對象所對應的值。V 表示值的數據類型
V put(K key, V value) 向 Map 集合中添加鍵-值對,返回 key 以前對應的 value,如果沒有, 則返回 null
V remove(Object key) 從 Map 集合中刪除 key 對應的鍵-值對,返回 key 對應的 value,如 果沒有,則返回null
Set entrySet() 返回 Map 集合中所有鍵-值對的 Set 集合,此 Set 集合中元素的數據 類型為 Map.Entry
Set keySet() 返回 Map 集合中所有鍵對象的 Set 集合

例 1

每名學生都有屬于自己的唯一編號,即學號。在畢業時需要將該學生的信息從系統中移除。

下面編寫 Java 程序,使用 HashMap 來存儲學生信息,其鍵為學生學號,值為姓名。畢業時,需要用戶輸入學生的學號,并根據學號進行刪除操作。具體的實現代碼如下:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
public class Test09
{
    public static void main(String[] args)
    {
        HashMap users=new HashMap();
        users.put("11","張浩太");    //將學生信息鍵值對存儲到Map中
        users.put("22","劉思誠");
        users.put("33","王強文");
        users.put("44","李國量");
        users.put("55","王路路");
        System.out.println("******** 學生列表 ********");
        Iterator it=users.keySet().iterator();
        while(it.hasNext())
        {
            //遍歷 Map
            Object key=it.next();
            Object val=users.get(key);
            System.out.println("學號:"+key+",姓名:"+val);
        }
        Scanner input=new Scanner(System.in);
        System.out.println("請輸入要刪除的學號:");
        int num=input.nextInt();
        if(users.containsKey(String.valueOf(num)))
        {    //判斷是否包含指定鍵
            users.remove(String.valueOf(num));    //如果包含就刪除
        }
        else
        {
            System.out.println("該學生不存在!");
        }
        System.out.println("******** 學生列表 ********");
        it=users.keySet().iterator();
        while(it.hasNext())
        {
            Object key=it.next();
            Object val=users.get(key);
            System.out.println("學號:"+key+",姓名:"+val);
        }
    }
}

在該程序中,兩次使用 while 循環遍歷 HashMap 集合。當有學生畢業時,用戶需要輸入該學生的學號,根據學號使用 HashMap 類的 remove() 方法將對應的元素刪除。程序運行結果如下所示。
******** 學生列表 ********
學號:44,姓名:李國量
學號:55,姓名:王路路
學號:22,姓名:劉思誠
學號:33,姓名:王強文
學號:11,姓名:張浩太
請輸入要刪除的學號:
22
******** 學生列表 ********
學號:44,姓名:李國量
學號:55,姓名:王路路
學號:33,姓名:王強文
學號:11,姓名:張浩太
******** 學生列表 ********
學號:44,姓名:李國量
學號:55,姓名:王路路
學號:22,姓名:劉思誠
學號:33,姓名:王強文
學號:11,姓名:張浩太
請輸入要刪除的學號:
44
******** 學生列表 ********
學號:55,姓名:王路路
學號:22,姓名:劉思誠
學號:33,姓名:王強文
學號:11,姓名:張浩太

注意:TreeMap 類的使用方法與 HashMap 類相同,唯一不同的是 TreeMap 類可以對鍵對象進行排序,這里不再贅述。
< 上一頁Java Set集合 Java Collection類下一頁 >

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo
极速pk10开户