Java 不可变Map练习 (2024.7.28)

        CollectionExercise3

package CollectionExercise20240728;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class CollectionExercise3 {public static void main(String[] args) {// 不可变的Map集合// Map中键是不可以重复的// Map中的of方法参数是有上限的,最多20个参数(也就是10个键值对)// 键值对个数≤10Student s1 = new Student("张三", 18);Student s2 = new Student("李四", 21);Student s3 = new Student("王五", 19);Student s4 = new Student("赵六", 23);Student s5 = new Student("钱七", 17);Student s6 = new Student("周八", 30);Map<Student, String> studentMap = Map.of(s1, "重庆", s2, "四川", s3, "武汉",s4, "北京", s5, "上海", s6, "深圳");studentMap.forEach((key, value) -> System.out.println(key.getName() + " " + key.getAge() + " = " + value));// 不可变的Map无法更改studentMap.put(new Student("小明", 20), "USA"); // 无法更改// 键值对个数>10:此时of中的参数已经不够了,需要用Map中的ofEntries方法// 创建11个键值对对象HashMap<String, String> hm = new HashMap<>();hm.put("张三", "南京");hm.put("李四", "北京");hm.put("王五", "上海");hm.put("赵六", "北京");hm.put("孙七", "深圳");hm.put("周八", "杭州");hm.put("吴九", "宁波");hm.put("郑十", "苏州");hm.put("刘一", "无锡");hm.put("陈二", "嘉兴");hm.put("aaa", "111");// 先将HashMap中的元素转换为entries集合Set<Map.Entry<String, String>> entrySet = hm.entrySet();// 创建entries数组Map.Entry<String, String>[] arr = new Map.Entry[0];// 将entries集合转换为数组,用新的数组接受Map.Entry<String, String>[] arr1 = entrySet.toArray(arr);// 将entries的数组传递给ofEntries方法Map<String, String> map = Map.ofEntries(arr1);// 不可变的Map创造成功,无法改变map.put("bbb","222");// 可以调用Map中的copyOf方法得到一个不可变的Map对象,其底层原理和上面的代码一样Map<String, String> map2 = Map.copyOf(hm);map.put("bbb","222");}
}class Student{String name;int age;public Student() {this("TestStudent", 20);}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

业绩增长新引擎:智能名片如何助力销售突破

01、智能名片&#xff0c;营销增长利器 在当今竞争激烈的市场环境下&#xff0c;企业正面临着类似品牌曝光不足、销售线索获取困难、客户关系维护复杂等诸多挑战。为帮助企业解决相关难题&#xff0c;促进业绩高效增长&#xff0c;纷享营销通的 智能名片 应运而生&#xff0…

【Linux中Shell的功能】

一、Shell概念 Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问操作系统内核的服务。 Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。S…

Leetcode—74. 搜索二维矩阵【中等】

2024每日刷题&#xff08;149&#xff09; Leetcode—74. 搜索二维矩阵 实现代码 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m matrix.size();int n matrix[0].size();int l 0;int r m * n;int mid -1…

DB-gpt + one-api + kimi-free-api 真香

# 1. 新建文件夹 one-api 和 子目录 mkdir -p /docker/one-api/data# 运行容器one-api docker run --name one-api -d --restart always -p 3333:3000 \ -e TZAsia/Shanghai -e REDIS_CONN_STRINGredis://192.168.0.3:6379 -e SYNC_FREQUENCY60 -e SQL_DSNroot:123456tcp(192.1…

springboot整合junit-用于测试用例

package impl;public interface BookDao {public void save(); }第一步&#xff1a;打开软件&#xff0c;点击file&#xff0c;点击new 然后选择module&#xff0c;在右侧选择springboot 第二步&#xff1a;选择配置和JDK以及java版本 ①选择maven类型 ②选择JDK1.8版本 ③选…

极限两边夹定理

极限两边夹定理 1. 定义 两边夹定理 (又称作夹逼定理) 说的是&#xff0c;如果一个函数 f f f 被夹在函数 g g g 和函数 h h h 之 间&#xff0c;当 x → a x \rightarrow a x→a 时&#xff0c;这两个函数 g g g 和 h h h 都收敛于同一个极限 L L L&#xff0c;那么当…

全国区块链职业技能大赛样题第9套后端源码

后端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746050 前端源码地址:https://blog.csdn.net/Qhx20040819/article/details/140746216 智能合约+数据库表设计:https://blog.csdn.net/Qhx20040819/article/details/140746646 项目预览 登录 用户管理

JavaScript获取URL参数的几种方法

前言 在前端开发中&#xff0c;处理URL参数是一个常见的任务&#xff0c;尤其是在没有框架支持的情况下。虽然许多框架提供了方便的方法来获取URL参数&#xff0c;但有时我们需要依赖原生JavaScript来完成这个任务。这也是面试中经常出现的问题之一。今天让我们一起来探讨如何…

LRTimelapse Pro 7.0 安装教程

软件介绍 LRTimelapse Pro (LRT) 是一款专业的延迟摄影编辑渲染工具&#xff0c;具有高清输出、简单易用、无缝转换等特点。是非常强大的一款延迟摄影工具&#xff01;LRTimelapse Pro可以将您的影片提升一个水准。 程序可以配合 Adobe Lightroom, Adobe Camera RAW 和 Adobe…

2024年孝感中级职称报名开始了吗?

2024年孝感中级职称申报终于开始了&#xff0c;之前参加过水测的小伙伴们&#xff0c;开始准备评审了 2024年孝感本批次申报时间&#xff1a;中级、初级职称网上申报时间:2024年8月1日至8月31日。 注意&#xff1a;个人通过“湖北省职称评审管理信息系统”申报&#xff0c;须先…

Llama 3.1 重磅发布,登顶开源大模型王座!

7月23日&#xff0c;Meta正式发布迄今为止最强大的开源模型——Llama 3.1 405B&#xff0c;同时发布了全新升级的Llama 3.1 70B和8B模型。 Meta在正式发布里也附上了长达92页的论文《The Llama 3 Herd of Models》&#xff0c;揭示了Llama 3模型的技术和训练细节。 论文地址&am…

Jacoco 单元测试配置

前言 编写单元测试是开发健壮程序的有效途径&#xff0c;单元测试写的好不好可以从多个指标考量&#xff0c;其中一个就是单元测试的覆盖率。单元测试覆盖率可以看到我们的单元测试覆盖了多少代码行、类、分支等。查看单元测试覆盖率可以使用一些工具帮助我们计算&#xff0c;…

GLSL教程 第12章:现代GLSL特性

目录 12.1 现代OpenGL的特性和GLSL的兼容性 1.1 OpenGL版本及其影响 1.2 GLM与GLSL的兼容性 12.2 使用GLSL的新特性进行开发 2.1 Tessellation Shader 2.2 Compute Shader 2.3 多重渲染目标&#xff08;MRT&#xff09; 12.3 着色器的兼容性和移植性问题 3.1 兼容性问…

图解RocketMQ之生产者如何进行消息重试

大家好&#xff0c;我是苍何。 上一篇留了一个小问题&#xff0c;如果消费者出现异常&#xff0c;消费某一条消息失败&#xff0c;这时候 RocketMQ 会怎么处理呢&#xff1f; 你可能会用你聪明绝顶的脑袋瓜子想&#xff0c;苍何你是不是傻&#xff0c;失败了肯定重试啊&#…

单据新增,限制单据栏位的录入值,设置过滤条件

希望通过开发实现 单据头的组织栏位,只能选择101开头的组织,实现的效果如下: 代码如下: using Kingdee.BOS.Util; using Kingdee.BOS.Core.DynamicForm.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using System.ComponentModel;namespace cux.button.test {…

基于opencv的人脸识别(实战)

前言 经过这几天的学习&#xff0c;我已经跃跃欲试了&#xff0c;相信大家也是&#xff0c;所以我决定自己做一个人脸识别程序。我会把自己的思路和想法都在这篇博客内讲清楚&#xff0c;大家可以当个参考&#xff0c;&#x1f31f;仅供学习使用&#x1f31f;。 &#x1f31f…

分享10个好用的论文编辑服务/平台

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 如果您对自己的学术写作能力存在怀疑&#xff0c;论文编辑服务/平台或许能提供帮助。为了帮助您做出更好的选择&#xff0c;今天的分享我们列出了2024年“全网”最好用的10个论文编辑服…

怎么样建设数字化车间?

建设数字化车间是一个综合性的过程&#xff0c;旨在通过现代信息技术、智能设备和自动化技术对车间进行优化改造&#xff0c;提高生产效率和产品质量。以下是一些关键步骤和要点&#xff0c;用于指导数字化车间的建设&#xff1a; 一、明确建设目标和需求 分析现状&#xff1…

【轨物方案】开关柜在线监测物联网解决方案

随着物联网技术的发展&#xff0c;电力设备状态监测技术也得到了迅速发展。传统的电力成套开关柜设备状态监测方法主要采用人工巡检和定期维护的方式&#xff0c;这种方法不仅效率低下&#xff0c;而且难以保证设备的实时性和安全性。因此&#xff0c;基于物联网技术的成套开关…

2024上海国际嵌入式展回顾 | 聚焦嵌入式开发中的合规性工具、项目管理工具、版本迭代工具应用

日前&#xff0c;龙智携嵌入式开发及管理解决方案亮相2024上海国际嵌入式展&#xff08;embedded world China 2024&#xff09;。展会期间&#xff0c;我们对话了多位龙智资深DevSecOps顾问及技术支持专家&#xff0c;就嵌入式开发与管理领域的最新趋势、工具选择以及DevSecOp…