Java中除Map实现类之外可以存储K-V的类

news/2025/2/10 9:35:16/

Entry接口下的实现类

  • SimpleEntry :初始化后可以setValue()设置值
  • SimpleImmutableEntry :初始化后不能再改变

SimpleEntry

SimpleEntry可以存储单键值对,一个对象只存储一个键值对
在这里插入图片描述

在这里插入图片描述
SImpleEntry的使用
构造方法赋值

public static void main(String[] args) {//构造方法赋值AbstractMap.SimpleEntry<String,String> entry1 = new AbstractMap.SimpleEntry<>("刘备","蜀汉" );AbstractMap.SimpleEntry<String,String> entry2 = new AbstractMap.SimpleEntry<>("孙权","东吴" );System.out.println(entry1);System.out.println(entry2);
}

在这里插入图片描述
可以修改对象的值
在这里插入图片描述
应用:
需要单键值对存储的场景
LeetCode102 二叉树的层序遍历

class Solution {/*** 1.root入队* 2.遍历队列* 3.取出队首元素 level,node* 4.left,right 入队*/public List<List<Integer>> levelOrder(TreeNode root) {//返回的listList<List<Integer>> res = new ArrayList<>();if(root == null){return res;}Queue<AbstractMap.SimpleEntry<TreeNode,Integer>> queue = new LinkedList<>();//1.root入队queue.add(new AbstractMap.SimpleEntry(root,0));//2、遍历队列while (!queue.isEmpty()){//3.取出队首元素AbstractMap.SimpleEntry<TreeNode,Integer> map = queue.poll();//取出节点和对应的层数TreeNode node = map.getKey();Integer level = map.getValue();if(res.size() == level){res.add(new ArrayList<>());}//拿到对应层数的ListList<Integer> list = res.get(level);list.add(node.val);//4.left , right 入队if(node.left != null){queue.add(new AbstractMap.SimpleEntry(node.left,level+1));}if(node.right != null){queue.add(new AbstractMap.SimpleEntry(node.right,level+1));}}return res;}
}

SimpleImmutableEntry

初始化后就不能再修改,修改会报错

AbstractMap.SimpleImmutableEntry<String,String> entry = new AbstractMap.SimpleImmutableEntry<>("刘备", "蜀汉");entry.setValue("NULL");

在这里插入图片描述

Pair

初始化后不能修改
在这里插入图片描述

在这里插入图片描述


http://www.ppmy.cn/news/584435.html

相关文章

【软考高项】拿到信息系统项目管理师职业证书的备考方法

说明&#xff1a;这是一篇个人备考信息系统项目管理师的考试心得、方法总结。 适用&#xff1a;考高项的同学参考和学习使用。 考试场次说明&#xff1a; 第一场、09:00-11:30 综合知识 75道选择题 【2.5小时】技巧【2千刷题量、背计算题公式】 第二场、13:30-15:00 案例分析 …

隐藏手机号码中间四位程序python_Excel快速将手机号码中间四位数字隐藏

手机号码是客户的隐私。为了保护隐私,我们经常要将其中间四位数字用星号来表示,也就是将其隐藏起来。今天我们就来学习两种办法来达成这个目的。 上图为蜀汉五虎上将手机号码表。请将其手机号码中间四位用星号进行代替。 方法一:REPLACE函数法replace函数功能是用新字符串替…

《蜀汉天下》地图制作之一:英雄制作

英雄设计 设计英雄的类型、属性、技能。 刘备 英雄介绍&#xff1a;刘玄德&#xff0c;蜀汉昭烈帝&#xff0c;弘毅宽厚&#xff0c;有高祖之风。定位&#xff1a;医疗输出。技能&#xff1a;仁义无双&#xff0c;同心同德&#xff0c;如鱼得水&#xff0c;蜀汉天下。属性&a…

《真三国蜀汉传》隐私政策

真三国蜀汉传尊重和保护利用用户的隐私所有的服务。为了向您提供更准确&#xff0c;更人性化的服务&#xff0c;将真三国蜀汉传使用和披露按照本隐私政策您的个人信息。 但是真三国蜀汉传将是一个高度的勤勉&#xff0c;审慎义务对待这些信息。除本隐私政策另有规定外&#xf…

C语言王国探险记之常量的四大护卫

王国探险记系列 文章目录&#xff08;3&#xff09; 前言 一、常量是什么&#xff1f; 二、常量的第一护卫&#xff1a;字面常量 1.什么是字面常量? 三、常量的第二护卫&#xff1a;const修饰的常变量 1.什么是const修饰的常变量? 2&#xff0c;证明const修饰的常变量…

golang的interface

Golang的interface类型介绍 什么是Golang的interface类型&#xff1f; 在Golang中&#xff0c;interface&#xff08;接口&#xff09;是一种类型&#xff0c;用于定义对象的行为规范。它定义了一组方法的集合&#xff0c;而无需指定具体的实现细节。接口允许我们将不同的类型视…

Android 使用webView打开网页可以实现自动播放音频

使用webview 自动播放音视频&#xff0c;场景如&#xff0c;流媒体自动部分&#xff0c;音视频通话等。会出现如下问题&#xff1a; 解决方案如下&#xff1a; 配置webview 如下&#xff0c;这样可以自动播放音频。 webView.getSettings().setMediaPlaybackRequiresUserGestur…

Linux守护进程详解、范例演示 ( 6 ) -【Linux通信架构系列 】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the…