栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Java]Map集合的基础用法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Java]Map集合的基础用法

#博学谷IT学习技术支持

文章目录
  • 前言
  • 一、Map集合概述
  • 二、哈希值与结构
  • 三、基础功能
  • 四、Map集合获取方法
  • 五、Map集合的两种遍历方法


前言

个人学习笔记,欢迎指出任何错误,留言意见。

我的文章都将随着个人学习深入而定期更新。

以最简洁的风格,理解概念和方法


一、Map集合概述
  • 数据结构是哈希表

  • 存取无序

  • 不可以存储重复元素

  • 没有索引,不能使用普通for循环遍历

二、哈希值与结构

1.哈希值
  • 哈希值简介

    是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

  • 如何获取哈希值

    Object类中的public int hashCode():返回对象的哈希码值

  • 哈希值的特点

    • 同一个对象多次调用hashCode()方法返回的哈希值是相同的

    • 默认情况下,不同对象的哈希值是不同的。而重写hashCode()方法,可以实现让不同对象的哈希值相同

2.哈希表结构

代码如下(示例):

  • JDK1.8以前

    数组 + 链表

  • JDK1.8以后

节点个数少于等于8个

数组 + 链表

节点个数多于8个

数组 + 红黑树

三.Map基本方法

2.1基本方法
  • 方法名说明
    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 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("郭襄"));
    
            //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);
        }
    }

    四、Map集合的获取方法

方法名说明
V get(Object key)根据键获取值
Set keySet()获取所有键的集合
Collection values()获取所有值的集合
Set> entrySet()获取所有键值对对象的集合

代码应用

public class MapDemo03 {
    public static void main(String[] args) {
        //创建集合对象
        Map map = new HashMap();

        //添加元素
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //V get(Object key):根据键获取值
//        System.out.println(map.get("张无忌"));
//        System.out.println(map.get("张三丰"));

        //Set keySet():获取所有键的集合
//        Set keySet = map.keySet();
//        for(String key : keySet) {
//            System.out.println(key);
//        }

        //Collection values():获取所有值的集合
        Collection values = map.values();
        for(String value : values) {
            System.out.println(value);
        }
    }
}
五、Map集合的遍历方法

1、Map集合的遍历(方式1)

遍历思路

  • 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合

    • 把所有的丈夫给集中起来

    • 遍历丈夫的集合,获取到每一个丈夫

    • 根据丈夫去找对应的妻子

  • 步骤分析

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

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

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

public class MapDemo01 {
    public static void main(String[] args) {
        //创建集合对象
        Map map = new HashMap();

        //添加元素
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //获取所有键的集合。用keySet()方法实现
        Set keySet = map.keySet();
        //遍历键的集合,获取到每一个键。用增强for实现
        for (String key : keySet) {
            //根据键去找值。用get(Object key)方法实现
            String value = map.get(key);
            System.out.println(key + "," + value);
        }
    }
}

2、Map集合的遍历(方式2)

- 遍历思路

  - 我们刚才存储的元素都是成对出现的,所以我们把Map看成是一个夫妻对的集合
    - 获取所有结婚证的集合
    - 遍历结婚证的集合,得到每一个结婚证
    - 根据结婚证获取丈夫和妻子

- 步骤分析

  - 获取所有键值对对象的集合
    - Set> entrySet():获取所有键值对对象的集合
  - 遍历键值对对象的集合,得到每一个键值对对象
    - 用增强for实现,得到每一个Map.Entry
  - 根据键值对对象获取键和值
    - 用getKey()得到键
    - 用getValue()得到值

public class MapDemo02 {
    public static void main(String[] args) {
        //创建集合对象
        Map map = new HashMap();

        //添加元素
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //获取所有键值对对象的集合
        Set> entrySet = map.entrySet();
        //遍历键值对对象的集合,得到每一个键值对对象
        for (Map.Entry me : entrySet) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "," + value);
        }
    }
}


总结


以上就是Map集合的主要方法与使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/941213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号