Java中Map集合概述特点、基本功能、获取功能及Map集合的两种遍历方式

简介: Map集合概述特点、基本功能、获取功能及Map集合的两种遍历方式的简单示例

 一、Map集合概述和特点

Map集合概述:

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

image.gif

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); 
    } 
}

image.gif

二、Map集合的基本功能

方法介绍:

方法名 说明
V put(K key,V value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除所有的键值对元素
boolean containKey(Object key) 判断集合是否包含指定的键
boolean containValue(Oject 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); 
    } 
}

image.gif

三、Map集合的获取功能

方法介绍:

方法名 说明
V get(Object key) 根据键获取值
Set keySet() 获取所有键的集合
Collection 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); 
        } 
    } 
}

image.gif

四、Map集合的两种遍历方式

方式一:

遍历思路

map集合存储的元素是成对出现的,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); 
        } 
    } 
}

image.gif

方式二:

遍历思路

存储的元素是成对出现的,所有可以把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); 
        } 
    } 
}

image.gif

目录
相关文章
|
2月前
|
存储 安全 Java
从入门到精通:Java Map全攻略,一篇文章就够了!
【10月更文挑战第17天】本文详细介绍了Java编程中Map的使用,涵盖Map的基本概念、创建、访问与修改、遍历方法、常用实现类(如HashMap、TreeMap、LinkedHashMap)及其特点,以及Map在多线程环境下的并发处理和性能优化技巧,适合初学者和进阶者学习。
55 3
|
2月前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
105 3
|
2月前
|
存储 安全 Java
Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
【10月更文挑战第17天】Java Map新玩法:探索HashMap和TreeMap的高级特性,让你的代码更强大!
72 2
|
2月前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
92 2
|
2月前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
64 2
|
2月前
|
存储 缓存 安全
HashMap VS TreeMap:谁才是Java Map界的王者?
HashMap VS TreeMap:谁才是Java Map界的王者?
83 2
|
2月前
|
存储 Java API
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
键值对魔法:如何优雅地使用Java Map,让代码更简洁?
134 2
|
1月前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
116 60
|
26天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
27 2
|
1月前
|
存储 Java API
Java交换map的key和value值
通过本文介绍的几种方法,可以在Java中实现Map键值对的交换。每种方法都有其优缺点,具体选择哪种方法应根据实际需求和场景决定。对于简单的键值对交换,可以使用简单遍历法或Java 8的Stream API;对于需要处理值不唯一的情况,可以使用集合存储或Guava的Multimap。希望本文对您理解和实现Java中的Map键值对交换有所帮助。
33 1