溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中Map的使用方法

發(fā)布時(shí)間:2020-06-24 15:01:14 來源:億速云 閱讀:145 作者:元一 欄目:編程語言

這篇文章運(yùn)用簡單易懂的例子給大家介紹Java中Map的使用方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在JAVA中,map接口提供的集合又稱為查找表。

Map 接口定義的集合又稱為查找表,用于存儲(chǔ)所謂"key-value"映射對。Key可以看成是Value 的索引,作為key的對象在集合中不可重復(fù)。

根據(jù)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的不同,Map 接口有多種實(shí)現(xiàn)類,其中常用的有內(nèi)部為hash 表實(shí)現(xiàn)的 HashMap 和內(nèi)部為排序二叉樹實(shí)現(xiàn)的TreeMap。

Java中Map的使用方法

java.util.Map 接口 查找表

Map 體現(xiàn)的結(jié)構(gòu)是一個(gè)多行兩列的表格,左列稱為key
右列稱為value.
Map 總是根據(jù)key來獲取對應(yīng)的value.因此保存數(shù)據(jù)時(shí)是成對保存的,并且應(yīng)當(dāng)將查詢的數(shù)據(jù)作為value查詢條件作為key進(jìn)行保存.
Map要求key 不允許重復(fù)(equals 比較判定)

常用的實(shí)現(xiàn)類

java.util.HashMap,散列表,哈希表

查詢速度最快的數(shù)據(jù)結(jié)構(gòu)

Map的遍歷

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/**
 * Map的遍歷 Map提供了三種遍歷方式: 1:遍歷所有的key 2:遍歷每一組鍵值對 3:遍歷所有的value(相對不常用)
 *
 */
public class MapDemo2 {
	public static void main(String[] args) {
		Map<String, Integer> map 
						= new HashMap<>();
		map.put("語文", 99);
		map.put("數(shù)學(xué)", 98);
		map.put("英語", 97);
		map.put("物理", 96);
		map.put("化學(xué)", 99);
		System.out.println(map);
		
		/*
		 * 遍歷所有的key
		 * Set keySet()
		 * 將當(dāng)前Map中所有的key以一個(gè)Set集合
		 * 形式返回.遍歷該集合等同于遍歷了所有
		 * 的key
		 */
		Set<String> keySet = map.keySet();
		for(String key : keySet) {
			System.out.println("key:"+key);
		}
		
		/*
		 * 遍歷每一組鍵值對
		 * Set entrySet()
		 * 將當(dāng)前Map中每一組鍵值對以一個(gè)Entry實(shí)例
		 * 存入Set集合并返回.
		 * 
		 * java.util.Map.Entry
		 * Entry的每一個(gè)實(shí)例用于表示Map中的一組
		 * 鍵值對
		 */
		Set<Entry<String,Integer>> entrySet 
						= map.entrySet();		
		for(Entry<String,Integer> e:entrySet) {
			String key = e.getKey();
			Integer value = e.getValue();
			System.out.println(key+":"+value);
		}
	}
}

基本用法

public class MapDemo{
	public static void main(String[] args){
		Map<String,Integer>map = new HashMap<>();
		/*
		 * V put(K k,V v)
		 * 將給定的key-value對存入Map
		 * 由于Map要求key不允許重復(fù),所以若
		 * 使用重復(fù)的key存儲(chǔ)則是替換value操作
		 * 那么返回值就是該key原來對應(yīng)的value
		 * 若給定的key不存在則返回值為null.
		 */
		map.put("攻擊",60);
		Integer value=map.put("攻速",8);
		System.out.println(value); // null
		value=map.put("攻速",6);
		System.out.println(value); // 8 
		/*
		 * V get(Object key)
		 * 根據(jù)給定的key獲取對應(yīng)的value
		 * 若給定的key不存在則返回值為null
		 */
		value =map.get("攻擊");
		System.out.println(value);//60
		/*
		 * V remove(Object key)
		 * 刪除當(dāng)前Map中給定的key所對應(yīng)的鍵值對
		 * 返回值為該key對應(yīng)的value
		 */
		value = map.remove("攻擊");
		System.out.println(map);
		System.out.println(value);
		/*
		 * int size()
		 * 返回Map中的元素個(gè)數(shù)
		 */
		int size = map.size();
		System.out.println(size);
		/*
		 * 判斷當(dāng)前Map是否包含給定的key或value
		 */
		boolean ck = map.containsKey("攻速");
		System.out.println("包含key:"+ck);
		boolean cv = map.containsValue(96);
		System.out.println("包含value:"+cv);
	}
}

關(guān)于Java中Map的使用方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI