Map.Entry 内部接口|学习笔记

简介: 快速学习 Map.Entry 内部接口

开发者学堂课程【Java 高级编程Map.Entry 内部接口】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/20/detail/419



Map.Entry 内部接口


Map.Entry接口

虽然已经清楚了整个的 Map 集合的基本操作形式,但是依然需要有一个核心的问题要解决,Map 集合里面是如何进行数据储的?对于 List 而言(LinkedList 子类)依靠的是链表的形式实现的数据存储,

那么在进行数据存储的时候一定要将数据保存在一个 Node 节点之中,虽然在 HashMap 里面也可以见到 Node 类型定义,通过源代码定义可以发现,HashMap  类中的 Node  内部类本身实现了 Map.Entry 接口。

static class Node<K, V> implements Map.Entry<K, V>{}

所以可以得出结论:所有的key和 value的数据都被封装在Map.Entry接口之中,而此接口定义如下:

public static interface Map.EntryK.V

并且在这个内部接口里面提供有两个重要的操作方法:

·获取 key: public K getKey();

·获取指定 value:

图片10.png

在 JDK 1.9 以前的开发版本之中,使用者基本上都不会去考虑创建 Map.Entry 的对象,实际上在正常的开发过程之中使用者也不需要关心 Map.Entry  对象创建,可是从 JDK1.9 之后,Map 接口里面追加有一个新的方法:

创建 Map.Entry 对象: public static K,V> Map.Entry K,V>entry(K k, V y);


范例:创建Map.Entry对象

package cn.mldn.demo;

import java.util.Map;

public class JavaAPIDemo {

public static void main(String[ ] args) throws Exception {

Map.Entry<String,Integer> entry = Map.entry( "one", 1) ;

System.out.print1n("获取Key: " + entry.getKey());

System.out.println("获取Value: " + entry.getValue());

System.out.println(entry.getClass( ).getName());//观察使用的子类

}

}

通过分析可以发现在整个的 Map 集合里面,Map.Entrv 的主要作用就是作为一个Key 和 Value 的包装类型使用,而大部分情况下在进行数据存储的时候都会将 key和 value 包装为一个 Map.Entry 对象进行使用。

 

相关文章
|
6月前
|
Java
【Java基础】map的遍历方式和map.forEach的使用
【Java基础】map的遍历方式和map.forEach的使用
59 0
|
6月前
|
安全 Java
Map接口映射集合
Map接口映射集合
|
3月前
|
存储 容器
map和set的封装
map和set的封装
36 0
|
8月前
|
C++ 容器
【map和set的封装】
【map和set的封装】
54 0
|
11月前
|
编译器 C++
【C++】map和set的封装(上)
【C++】map和set的封装
68 0
|
存储 安全 Java
Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
|
存储 Java 开发者
Map.Entry 内部接口|学习笔记
快速学习 Map.Entry 内部接口
Map.Entry 内部接口|学习笔记
|
存储 索引
Map基础
MAP基础 map不同于普通的对象,普通对象的键值对,键只能是数值、字符串或者符号,而map的键可以是任意类型的值,包括对象、函数、数组等。
|
JSON 分布式计算 Hadoop
Map 方式|学习笔记
快速学习 Map 方式。
70 0
|
JSON 分布式计算 Hadoop
map 方式 | 学习笔记
快速学习 map 方式
68 0