java Map及Map.Entry详解介绍

Map是Java中的一个接口,它用于存储键值对(key-value pair)。每个键值对之间是唯一的,可以根据键来获取对应的值。Map提供了多种实现类,如HashMap、TreeMap、LinkedHashMap等。

Map的常用方法如下:

- **put(K key, V value)**: 将指定的键值对(key-value pair)添加到Map中,如果该键已存在,则会用新的值替换旧的值,并返回旧的值,否则返回null。

- **get(Object key)**: 根据键获取对应的值,如果键不存在,则返回null。

- **containsKey(Object key)**: 判断Map中是否包含指定的键。

- **containsValue(Object value)**: 判断Map中是否包含指定的值。

- **remove(Object key)**: 根据键删除对应的键值对,并返回删除的值。

- **size()**: 返回Map中键值对的数量。

- **isEmpty()**: 判断Map是否为空。

- **clear()**: 清空Map中所有的键值对。

Map.Entry是Map接口的一个内部接口,它用于表示Map中的键值对。每个键值对被封装成一个Entry对象,可以通过entrySet()方法获取Map中所有的Entry对象的集合。Entry接口提供了getKey()和getValue()方法来获取键和值。

Map.Entry的常用方法如下:

- **getKey()**: 获取Entry对象中的键。

- **getValue()**: 获取Entry对象中的值。

- **setValue(V value)**: 替换Entry对象中的值,并返回旧的值。

以下是一个使用Map和Map.Entry的示例代码:

```

import java.util.HashMap;

import java.util.Map;

public class MapExample {

public static void main(String[] args) {

// 创建一个HashMap对象

Map map = new HashMap<>();

// 添加键值对到Map中

map.put("apple", 1);

map.put("banana", 2);

map.put("orange", 3);

// 使用entrySet方法获取Map中所有的Entry对象

for (Map.Entry entry : map.entrySet()) {

System.out.println("键:" + entry.getKey() + ",值:" + entry.getValue());

}

// 根据键获取值

System.out.println("键为banana的值:" + map.get("banana"));

// 替换值

System.out.println("替换前的值:" + map.put("apple", 4));

System.out.println("替换后的值:" + map.get("apple"));

// 删除键值对

System.out.println("删除键为orange的值:" + map.remove("orange"));

System.out.println("键为orange的值:" + map.get("orange"));

// 判断Map是否为空

System.out.println("Map是否为空:" + map.isEmpty());

// 获取Map中键值对的数量

System.out.println("Map中键值对的数量:" + map.size());

// 清空Map

map.clear();

System.out.println("清空Map后,Map是否为空:" + map.isEmpty());

}

}

```

上述代码创建了一个HashMap对象,将一些水果作为键和对应的数量作为值添加到Map中。然后使用entrySet方法遍历Map中的所有键值对,并打印出键和值。接着根据键获取值,并使用put方法替换值。最后使用remove方法删除键值对。最后输出Map是否为空和键值对的数量,以及清空Map后判断Map是否为空。

这样使用Map及Map.Entry,在实际开发中可以方便地存储和获取键值对,以满足不同的业务需求。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(51) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部