Loading... > java.util.Map:现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等, 这种一一对应的关系,就叫做映射。Java提供了专门的集合类用来存放这种对象关系的对象,即 java.util.Map接口。不同步(多线程,线程不安全)。 # 1、特点 1. 双列集合,一个元素包含两个值,key和value; 2. key和value的类型可以相同,也可以不同; 3. key不允许重复,value可以重复; 4. key和value一一对应。 # 2、常用方法 `public V put(K key, V value)` :把指定的键与指定的值添加到Map集合中 `public V remove(Object key)` :: 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的 值 `public V get(Object key)` :根据指定的键,在Map集合中获取对应的值 `public boolean containsKey(Object key)` :Map集合中是否存在指定的键,返回boolean值 `public Set<K> keySet()` :获取Map集合中所有的键,存储到Set集合中 `public Set<Map.Entry<K, V>> entrySet()` :获取到Map集合中所有的键值对对象的集合(Set集合) 【注意】 * put(K key, V value)方法,若指定的键(key)在集合中没有,则没有这个键对应的值,返回null,并把指定的键值添加到 集合中;若key存在,则返回被替换的value。 * remove(Object key)方法,key存在,返回被删除的元素的value;若key不存在,则返回null。 * get(Object key)方法,key存在,返回对应的value;若key不存在,则返回null。 ```java has-numbering public static void main(String[] args) { // 创建Map结合 HashMap<Integer, String> map = new HashMap<>(); // 添加元素到集合 map.put(1, "张三"); map.put(2, "李四"); map.put(3, "王五"); map.put(4, "张三"); System.out.println(map.put(3, "小学妹")); System.out.println(map); // 删除元素 System.out.println(map.remove(4)); System.out.println(map); // 获取元素 System.out.println(map.get(1)); System.out.println(map.get(3)); } ``` # 3、Map集合遍历键找值方式 即:通过元素的键,获取键所对应的值。 步骤: 1. 获取Map中所有的键,由于键是唯一的,所以返回一个Set集合存储所有的键。 `keyset()` 2. .遍历键的Set集合,得到每一个键。 3. 根据键,获取键所对应的值。 `get(K key)` ```java has-numbering public static void main(String[] args) { // 创建map集合 HashMap<String, String> map = new HashMap<>(); // 添加元素 map.put("01", "张三"); map.put("02", "李四"); map.put("03", "王五"); map.put("04", "小学妹"); // 获取所有的键 Set<String> set = map.keySet(); // 遍历键 for (String s : set) { // 根据键获取值 String value = map.get(s); System.out.println(s + " 对应的值是:" + value); } } ``` # 4、Entry键值对对象 Map 中存放的是两种对象,一种称为key(键),一种称为value(值),它们在在 Map 中是一一对应关 系,这一对对象又称做 Map 中的一个 Entry(项) 。 Entry 将键值对的对应关系封装成了对象。即键值对对象,这 样我们在遍历 Map 集合时,就可以从每一个键值对( Entry )对象中获取对应的键与对应的值。 `public K getKey()` :获取Entry对象中的键 `pubic V getValue()` :获取Entry对象中的值 # 5、Map集合遍历键值对方式 即:通过集合中每个键值对(Entry)对象,获取键值对(Entry)对象中的键与值。 步骤: 1. 获取Map集合中,所有的键值对(Entry)对象,以Set集合形式返回。 `entrySet()` 2. 遍历包含键值对(Entry)对象的Set集合,得到每一个键值对(Entry)对象。 ```java has-numbering public static void main(String[] args) { // 创建map集合 HashMap<String, String> map = new HashMap<>(); // 添加元素 map.put("01", "张三"); map.put("02", "李四"); map.put("03", "王五"); map.put("04", "小学妹"); // 获取Entry<K, V>对象集合 Set<Map.Entry<String, String>> set = map.entrySet(); // 遍历set集合,得到每一个Entry<K, V>对象 for (Map.Entry<String, String> entry : set) { String key = entry.getKey(); String value = entry.getValue(); System.out.println(entry); System.out.println(key + " 对应的值是:" + value); System.out.println("========================"); } } ``` > 感谢小伙伴们的关注! > 你的点赞、评论、关注、收藏是对博主的最大鼓励! > 持续更新JavaSE学习笔记!欢迎订阅专栏! 最后修改:2021 年 10 月 06 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏