Map集合中如何高效查找特定键的值?

2026-05-22 11:051阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1399个文字,预计阅读时间需要6分钟。

Map集合中如何高效查找特定键的值?

Map集合概述和特点:- Map集合是Java.util包下的一个接口,用于存储键值对。- K:键的类型,V:值的类型。- 将键映射到值,每个键只能映射到一个值。- 地图不能包含重复的键;每个键可以映射到最多一个值。- Map是一种键值对的数据结构。

Map集合 Map集合概述和特点

Map集合概述:
java.util
Interface Map<K,V> K:键的类型 V:值的类型
将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。

Map集合中如何高效查找特定键的值?

创建Map集合的对象
多态的方式
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。
示例

public class Map01 { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); //V put(K key,V value)将指定的值与该映射中的指定键相关联(可选操作)。如果映射先前包含了密钥的映射,则旧值将被指定的值替换。 map.put("001","哦哦"); map.put("002","哈哈"); map.put("003","嘿嘿"); // map.put("003","哦哦"); System.out.println(map); } }


若是把被注释003那行添加进去,结果会变成:

Map集合的基本功能 方法名 说明 V put (K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 void clear() 移除所有的键值对元素 boolean containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数

示例

public class Map02 { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); // V put (K key,V value):添加元素 map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); // V remove(Object key):根据键删除键值对元素,返回删除的元素 // System.out.println(map.remove("杨过"));//小龙女 // System.out.println(map.remove("Bob"));//null // void clear():移除所有的键值对元素 // map.clear();//{} // boolean containsKey(Object key): 判断集合是否包含指定的键 // System.out.println(map.containsKey("杨过"));//true // System.out.println(map.containsKey("Bob"));//false // boolean containsValue(Object value):判断集合是否包含指定的值 // System.out.println(map.containsValue("小龙女"));//true // System.out.println(map.containsValue("Bob"));//false // boolean isEmpty():判断集合是否为空 // System.out.println(map.isEmpty());//false // int size():集合的长度,也就是集合中键值对的个数 // System.out.println(map.size());//3 System.out.println(map); } } Map集合的获取功能 方法名 说明 V get(Object key) 根据键获取值 Set keySet() 获取所有键的集合 Collection(V) values() 获取所有值的集合

示例

import java.util.*;//表示把这个包下的全部类导入到程序中。 public class map03 { public static void main(String[] args) { Map<String,String > map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); // V get(Object key):根据键获取值 System.out.println(map.get("杨过")); System.out.println(map.get("杨幂")); System.out.println("------------"); // Set<K> keySet():获取所有键的集合 // System.out.println(map.keySet()); Set<String> keySet = map.keySet(); for (String key:keySet) { System.out.println(key); } System.out.println("-----------"); // Collection(V) values():获取所有值的集合 Collection<String> values = map.values(); for (String value : values) { System.out.println(value); } } }

运行结果如下

Map集合的遍历 第一种遍历方式

1. 获取所有键的集合,用keySet()方法实现
2. 遍历键的集合,获取到每一个键。用增强for实现
3. 根据键去找值。用get(Object key)方法实现

示例

import java.util.HashMap; import java.util.Map; import java.util.Set; public class Map04 { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); Set<String> keySet = map.keySet();//获取所有键的集合 for (String key : keySet) { String value = map.get(key);//根据键获取值 System.out.println(key+","+value); } } }

运行结果如下

第二种遍历方式
  1. 获取所有键值对对象的集合
    Set<Map.Entry<K,V>> entrySet():返回此地图中包含的映射的Set视图
    也就是获取所有键值对对象的集合
  2. 遍历键值对对象的集合,得到每一个键值对对象
    用增强for循环,得到每一个Map.Entry
  3. 根据键值对对象获取键和值
    getKey()获取键
    getValue()获取值
    示例

import java.util.HashMap; import java.util.Map; import java.util.Set; class Map041{ public static void main(String[] args) { Map<String,String > map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); Set<Map.Entry<String, String>> entrySet = map.entrySet(); // Map.Entry<String,String>相当于Set集合中的元素类型 for (Map.Entry<String,String> m:entrySet){ String key = m.getKey(); String value = m.getValue(); System.out.println(key+","+value); } } }

本文共计1399个文字,预计阅读时间需要6分钟。

Map集合中如何高效查找特定键的值?

Map集合概述和特点:- Map集合是Java.util包下的一个接口,用于存储键值对。- K:键的类型,V:值的类型。- 将键映射到值,每个键只能映射到一个值。- 地图不能包含重复的键;每个键可以映射到最多一个值。- Map是一种键值对的数据结构。

Map集合 Map集合概述和特点

Map集合概述:
java.util
Interface Map<K,V> K:键的类型 V:值的类型
将键映射到值的对象。 地图不能包含重复的键; 每个键可以映射到最多一个值。

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。其中,键对象不允许重复,而值对象可以重复,并且值对象还可以是 Map 类型的,就像数组中的元素还可以是数组一样。

Map集合中如何高效查找特定键的值?

创建Map集合的对象
多态的方式
Map 接口主要有两个实现类:HashMap 类和 TreeMap 类。其中,HashMap 类按哈希算法来存取键对象,而 TreeMap 类可以对键对象进行排序。
示例

public class Map01 { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); //V put(K key,V value)将指定的值与该映射中的指定键相关联(可选操作)。如果映射先前包含了密钥的映射,则旧值将被指定的值替换。 map.put("001","哦哦"); map.put("002","哈哈"); map.put("003","嘿嘿"); // map.put("003","哦哦"); System.out.println(map); } }


若是把被注释003那行添加进去,结果会变成:

Map集合的基本功能 方法名 说明 V put (K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素 void clear() 移除所有的键值对元素 boolean containsKey(Object key) 判断集合是否包含指定的键 boolean containsValue(Object value) 判断集合是否包含指定的值 boolean isEmpty() 判断集合是否为空 int size() 集合的长度,也就是集合中键值对的个数

示例

public class Map02 { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); // V put (K key,V value):添加元素 map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); // V remove(Object key):根据键删除键值对元素,返回删除的元素 // System.out.println(map.remove("杨过"));//小龙女 // System.out.println(map.remove("Bob"));//null // void clear():移除所有的键值对元素 // map.clear();//{} // boolean containsKey(Object key): 判断集合是否包含指定的键 // System.out.println(map.containsKey("杨过"));//true // System.out.println(map.containsKey("Bob"));//false // boolean containsValue(Object value):判断集合是否包含指定的值 // System.out.println(map.containsValue("小龙女"));//true // System.out.println(map.containsValue("Bob"));//false // boolean isEmpty():判断集合是否为空 // System.out.println(map.isEmpty());//false // int size():集合的长度,也就是集合中键值对的个数 // System.out.println(map.size());//3 System.out.println(map); } } Map集合的获取功能 方法名 说明 V get(Object key) 根据键获取值 Set keySet() 获取所有键的集合 Collection(V) values() 获取所有值的集合

示例

import java.util.*;//表示把这个包下的全部类导入到程序中。 public class map03 { public static void main(String[] args) { Map<String,String > map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); // V get(Object key):根据键获取值 System.out.println(map.get("杨过")); System.out.println(map.get("杨幂")); System.out.println("------------"); // Set<K> keySet():获取所有键的集合 // System.out.println(map.keySet()); Set<String> keySet = map.keySet(); for (String key:keySet) { System.out.println(key); } System.out.println("-----------"); // Collection(V) values():获取所有值的集合 Collection<String> values = map.values(); for (String value : values) { System.out.println(value); } } }

运行结果如下

Map集合的遍历 第一种遍历方式

1. 获取所有键的集合,用keySet()方法实现
2. 遍历键的集合,获取到每一个键。用增强for实现
3. 根据键去找值。用get(Object key)方法实现

示例

import java.util.HashMap; import java.util.Map; import java.util.Set; public class Map04 { public static void main(String[] args) { Map<String,String> map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); Set<String> keySet = map.keySet();//获取所有键的集合 for (String key : keySet) { String value = map.get(key);//根据键获取值 System.out.println(key+","+value); } } }

运行结果如下

第二种遍历方式
  1. 获取所有键值对对象的集合
    Set<Map.Entry<K,V>> entrySet():返回此地图中包含的映射的Set视图
    也就是获取所有键值对对象的集合
  2. 遍历键值对对象的集合,得到每一个键值对对象
    用增强for循环,得到每一个Map.Entry
  3. 根据键值对对象获取键和值
    getKey()获取键
    getValue()获取值
    示例

import java.util.HashMap; import java.util.Map; import java.util.Set; class Map041{ public static void main(String[] args) { Map<String,String > map = new HashMap<>(); map.put("郭靖","黄蓉"); map.put("杨过","小龙女"); map.put("张无忌","赵敏"); Set<Map.Entry<String, String>> entrySet = map.entrySet(); // Map.Entry<String,String>相当于Set集合中的元素类型 for (Map.Entry<String,String> m:entrySet){ String key = m.getKey(); String value = m.getValue(); System.out.println(key+","+value); } } }