首页 > 编程语言 >java----双列集合(Map)

java----双列集合(Map)

时间:2024-09-10 19:53:48浏览次数:10  
标签:Map java map 小龙女 ---- 集合 郭靖 put

来看一下双列集合。我们知道,单列集合就是一次只能添加一个元素:

单列集合:

 双列集合一次可以存储两个值:


一、双列集合特点:

        1.双列集合一次需要存一对数据,分别为键和值

        2.键不能重复,值可以重复

        3.键和值是一一对应的,每个键只能找到自己对应的值

        4.键+值这个整体我们称之为"键值对"或者"键值对对象",java中成为Entry对象

二、双列集合----Map集合

Map集合:Map集合是双列集合的顶层接口,它的功能是全部双列集合都可以继承使用

常用接口介绍:

方法名称说明
V put(K key,V value)添加元素
V remove(Object key)根据键删除元素
void clear()移除所有的键值对元素
boolean containsKey(Object key)判断集合是否包含指定的键
boolean containsValue(Object value)判断集合是否包含指定的值

  来看其中一个接口put:

public class demo1 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        System.out.println(map.put("杨过","郭靖"));//结果为小龙女
        System.out.println(map.put("神雕大侠","郭靖"));//结果为null
    }
}

结果:

小龙女

null 

可以看到,对于put方法的返回值会有两种不同的结果:

        1.当存储的键已经存在时,返回的值就是修改之前的值的值;

        2.当存储的键不存在时,返回的值时null.

Map集合的三种遍历方式

        1.增强for的方式遍历:(可以通过map集合里面的keySet方法获的键的集合,然后通过map.get(键)去找值)

public class demo1 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        Set<String> key=map.keySet();
        for(String keys:key){
            System.out.println(map.get(keys));
        }
    }
}

结果:

小龙女

黄蓉

        2.使用Map接口自带的内部接口 Entry<K , V> 过渡方式的遍历。通过调用mapentrySet()方法获取一个Set集合,该集合包含map中所有键值对的Map.Entry对象

Set<Map.Entry<K, V>> entrySet();//map内部接口


public class demo2 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        //每个元素都是一个Map.Entry对象,分别对应于map中的每个键值对
        Set<Map.Entry<String,String>> entries=map.entrySet();
        for(Map.Entry<String,String> entry:entries){
            String value=entry.getValue();
            String key=entry.getKey();
            System.out.println(value+":"+key);
        }

    }
}

结果:

小龙女:杨过
黄蓉:郭靖

        3.lambda表达式遍历以及迭代器遍历:

public class demo2 {
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        //每个元素都是一个Map.Entry对象,分别对应于map中的每个键值对
        Set<Map.Entry<String,String>> entries=map.entrySet();
        Iterator<Map.Entry<String,String>> it=entries.iterator();
        while(it.hasNext()){
            Map.Entry<String,String> mp=it.next();
            System.out.println(mp.getKey()+":"+mp.getValue());
        }

        entries.forEach(stringStringEntry-> {
                System.out.println(stringStringEntry.getKey()+":"+stringStringEntry.getValue());
            }
        );

    }
}

结果: 

杨过:小龙女
郭靖:黄蓉
杨过:小龙女
郭靖:黄蓉

迭代器的方式就是获取map中所有键值对的Map.Entry对象,然后通过getKey()和getValue的方式获得键和值。lambda是遍历的一种新的语法形式,原理也是获得Map.Entry对象,对其进行遍历。

标签:Map,java,map,小龙女,----,集合,郭靖,put
From: https://blog.csdn.net/qq_44766305/article/details/142106913

相关文章

  • 解决VSCode保存后未格式化文档的问题
        今天使用vscode编写前端项目时,保存后一直不能自动格式化。不管是通过配置文件来设置还是通过settings.json配置都没有效果。    原因:没有选择默认的格式化程序   解决办法:   1,随意进入一个vue文件右键,选择使用...格式化文档    2,再......
  • 《ChatGPT:强大的人工智能聊天机器人》
    一、引言在当今科技飞速发展的时代,人工智能已经成为了各个领域的热门话题。其中,聊天机器人作为人工智能的一个重要应用,正在逐渐改变人们的生活和工作方式。ChatGPT作为一款强大的人工智能聊天机器人,以其出色的语言理解和生成能力,受到了广泛的关注和应用。本文将对ChatGPT......
  • 初学者指南:掌握 Vue 路由(Router)
    初学者指南:掌握Vue路由(Router)在现代前端开发中,单页面应用(SPA)越来越受欢迎,而Vue.js是构建SPA的热门选择之一。在Vue应用中,路由管理是实现页面导航的关键。本文将带你一步步了解如何在Vue应用中使用路由。什么是路由?在Web应用中,路由是URL到页面内容的映射。......
  • Springboot车源后台管理系统f227y--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景随着汽车市场的蓬勃发展,车源信息的有效管理和高效利用成为汽车经销商、租赁公司、电商平台等企业的核心需求。为了提升车源信息的整合......
  • vue基本语法
    上文1)innerText和innerHTML属性的绑定    使用v-text和v-html标签<divid="app"><pv-text="link1"></p><pv-html="link2"></p></div><script>const{create......
  • Springboot宠物救助管理系统56185--(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景与意义随着宠物数量的不断增加,流浪动物及需救助宠物的问题日益凸显。传统的宠物救助方式往往受限于信息不对称、救助资源分散等问题,难......
  • 房屋租赁|基于springboot的房屋租赁管理系统设计与实现(附项目源码+论文+数据库)
    私信或留言即免费送开题报告和任务书(可指定任意题目)目录一、摘要二、相关技术三、系统设计四、数据库设计   五、核心代码    六、论文参考 七、源码获取一、摘要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息......
  • JAVA —— IO流续
    复习一下上次的字节流 一、字符流1.Reader——FileReader 文件字符输入流——读字符数据进来2.Writer——FileWriter文件字符输出流——写字符数据进去  1.Reader——FileReader(文件字符输入流) publicstaticvoidmain(String[]args){ try( ......
  • LTE PSS主同步信号PSS搜索阶段频偏估计
    频偏的影响:本期要讲到PSS搜索阶段,整数倍频偏和小数倍频偏的估计方法,整数倍频偏指的是子载波间隔的整数倍比如15k、30k等,小数倍频偏指的是一个子载波间隔以内的。在OFDM通信系统中,频偏是一个比较敏感的词,正常如果频偏估不准会带来一系列的问题,比如OFDM信号的正交性遭到破坏,带来......
  • 获奖证书合计(持续更新)
    国家级1.2024年8月 2024中国机器人大赛暨ROBOCUP机器人世界杯中国赛专项赛机器人旅游-机器人探险  全国一等奖2.2024年8月 全国物联网设计竞赛(华为杯)全国二等奖3.2024年8月  全国大学生嵌入式芯片与系统设计竞赛全国三等奖4.2024年8月睿抗机器人开发者大赛(R......