Map集合

简介: Map集合

1.Map集合

1.1Map集合概述和特点【理解】

  • Map集合概述

interface Map<K,V>  K:键的类型;V:值的类型

  • Map集合的特点
  • 双列集合,一个键对应一个值
  • 键不可以重复,值可以重复
  • Map集合的基本使用

public class MapDemo01 {

   public static void main(String[] args) {

       //创建集合对象

       Map<String,String> map = new HashMap<String,String>();

       //V put(K key, V value) 将指定的值与该映射中的指定键相关联

       map.put("itheima001","林青霞");

       map.put("itheima002","张曼玉");

       map.put("itheima003","王祖贤");

       map.put("itheima003","柳岩");

       //输出集合对象

       System.out.println(map);

   }

}

1.2Map集合的基本功能【应用】

  • 方法介绍
方法名 说明
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 MapDemo02 {

   public static void main(String[] args) {

       //创建集合对象

       Map<String,String> map = new HashMap<String,String>();

       //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("郭襄"));

       //void clear():移除所有的键值对元素

//        map.clear();

       //boolean containsKey(Object key):判断集合是否包含指定的键

//        System.out.println(map.containsKey("郭靖"));

//        System.out.println(map.containsKey("郭襄"));

       //boolean isEmpty():判断集合是否为空

//        System.out.println(map.isEmpty());

       //int size():集合的长度,也就是集合中键值对的个数

       System.out.println(map.size());

       //输出集合对象

       System.out.println(map);

   }

}

1.3Map集合的获取功能【应用】

  • 方法介绍
方法名 说明
V get(Object key) 根据键获取值
Set<K> keySet() 获取所有键的集合
Collection<V> values() 获取所有值的集合
Set<Map.Entry<K,V>> entrySet() 获取所有键值对对象的集合
  • 示例代码

public class MapDemo03 {

   public static void main(String[] args) {

       //创建集合对象

       Map<String, String> map = new HashMap<String, String>();

       //添加元素

       map.put("张无忌", "赵敏");

       map.put("郭靖", "黄蓉");

       map.put("杨过", "小龙女");

       //V get(Object key):根据键获取值

//        System.out.println(map.get("张无忌"));

//        System.out.println(map.get("张三丰"));

       //Set<K> keySet():获取所有键的集合

//        Set<String> keySet = map.keySet();

//        for(String key : keySet) {

//            System.out.println(key);

//        }

       //Collection<V> values():获取所有值的集合

       Collection<String> values = map.values();

       for(String value : values) {

           System.out.println(value);

       }

   }

}

1.4Map集合的遍历(方式1)【应用】

  • 遍历思路
  • 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
  • 把所有的丈夫给集中起来
  • 遍历丈夫的集合,获取到每一个丈夫
  • 根据丈夫去找对应的妻子
  • 步骤分析
  • 获取所有键的集合。用keySet()方法实现
  • 遍历键的集合,获取到每一个键。用增强for实现  
  • 根据键去找值。用get(Object key)方法实现
  • 代码实现

public class MapDemo01 {

   public static void main(String[] args) {

       //创建集合对象

       Map<String, String> map = new HashMap<String, String>();

       //添加元素

       map.put("张无忌", "赵敏");

       map.put("郭靖", "黄蓉");

       map.put("杨过", "小龙女");

       //获取所有键的集合。用keySet()方法实现

       Set<String> keySet = map.keySet();

       //遍历键的集合,获取到每一个键。用增强for实现

       for (String key : keySet) {

           //根据键去找值。用get(Object key)方法实现

           String value = map.get(key);

           System.out.println(key + "," + value);

       }

   }

}

1.5Map集合的遍历(方式2)【应用】

  • 遍历思路
  • 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
  • 获取所有结婚证的集合
  • 遍历结婚证的集合,得到每一个结婚证
  • 根据结婚证获取丈夫和妻子
  • 步骤分析
  • 获取所有键值对对象的集合
  • Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合
  • 遍历键值对对象的集合,得到每一个键值对对象
  • 用增强for实现,得到每一个Map.Entry
  • 根据键值对对象获取键和值
  • 用getKey()得到键
  • 用getValue()得到值
  • 代码实现

public class MapDemo02 {

   public static void main(String[] args) {

       //创建集合对象

       Map<String, String> map = new HashMap<String, String>();

       //添加元素

       map.put("张无忌", "赵敏");

       map.put("郭靖", "黄蓉");

       map.put("杨过", "小龙女");

       //获取所有键值对对象的集合

       Set<Map.Entry<String, String>> entrySet = map.entrySet();

       //遍历键值对对象的集合,得到每一个键值对对象

       for (Map.Entry<String, String> me : entrySet) {

           //根据键值对对象获取键和值

           String key = me.getKey();

           String value = me.getValue();

           System.out.println(key + "," + value);

       }

   }

}


相关文章
|
6月前
|
Dart
Dart之集合详解(List、Set、Map)
Dart之集合详解(List、Set、Map)
|
6月前
|
存储 JavaScript 前端开发
JavaScript进阶-Map与Set集合
【6月更文挑战第20天】JavaScript的ES6引入了`Map`和`Set`,它们是高效处理集合数据的工具。`Map`允许任何类型的键,提供唯一键值对;`Set`存储唯一值。使用`Map`时,注意键可以非字符串,用`has`检查键存在。`Set`常用于数组去重,如`[...new Set(array)]`。了解它们的高级应用,如结构转换和高效查询,能提升代码质量。别忘了`WeakMap`用于弱引用键,防止内存泄漏。实践使用以加深理解。
85 3
|
3月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
3月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
4月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set
|
4月前
|
Java
【Java集合类面试二十二】、Map和Set有什么区别?
该CSDN博客文章讨论了Map和Set的区别,但提供的内容摘要并未直接解释这两种集合类型的差异。通常,Map是一种键值对集合,提供通过键快速检索值的能力,而Set是一个不允许重复元素的集合。
|
4月前
|
算法 Java 索引
【Java集合类面试四】、 描述一下Map put的过程
这篇文章详细描述了HashMap中put操作的过程,包括首次扩容、计算索引、插入数据以及链表转红黑树和可能的再次扩容。
【Java集合类面试四】、 描述一下Map put的过程
|
4月前
|
安全 Java
【Java集合类面试五】、 如何得到一个线程安全的Map?
如何得到一个线程安全的Map的方法包括:使用Collections工具类将Map包装为线程安全,使用java.util.concurrent包下的ConcurrentHashMap,以及不推荐使用性能较差的Hashtable。
|
4月前
|
安全 Java
【Java集合类面试三】、Map接口有哪些实现类?
这篇文章介绍了Java中Map接口的几种常用实现类:HashMap、LinkedHashMap、TreeMap和ConcurrentHashMap,以及它们适用的不同场景和线程安全性。
|
5月前
|
存储 安全 Java
Java基础之集合Map
【7月更文挑战第8天】Java中的Map集合以键值对方式存储数据,如`Map&lt;&quot;name&quot;, &quot;张三&quot;&gt;`。Map接口定义了存取、判断、移除等操作,包括`put`、`get`、`containsKey`等方法。HashMap是最常用的实现,基于哈希表,允许null键值,但不保证顺序。其他实现包括同步的Hashtable、处理属性文件的Properties、保持插入顺序的LinkedHashMap、基于红黑树的TreeMap、弱引用的WeakHashMap、并发安全的ConcurrentHashMap和针对枚举优化的EnumMap。
48 4