📜  Java Map 中 value() 与 entrySet() 方法的区别(1)

📅  最后修改于: 2023-12-03 15:15:57.041000             🧑  作者: Mango

Java Map 中 value() 与 entrySet() 方法的区别

在Java的Map中,有一些方法可以用于获取Map中的key和value。其中,value()方法和entrySet()方法是两个比较常用的方法。

value()方法

value()方法返回Map中的所有value。方法签名如下:

Collection<V> values()

这里的V是Map的value类型。返回值是一个Collection类型,包含了Map中所有的value。

例如,下面的代码创建了一个Map对象,并使用value()方法获取了Map中的所有value:

Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

Collection<Integer> values = map.values(); // 获取map中所有的value
for (Integer value : values) {
    System.out.println(value);
}

输出结果:

1
2
3
entrySet()方法

entrySet()方法返回Map中所有的键值对。方法签名如下:

Set<Map.Entry<K,V>> entrySet()

这里的KV分别是Map的key和value类型。返回值是一个Set类型,其中存放了Map中所有的键值对,类型为Map.Entry<K,V>

例如,下面的代码创建了一个Map对象,并使用entrySet()方法获取了Map中所有的键值对:

Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

Set<Map.Entry<String, Integer>> entrySet = map.entrySet(); // 获取map中所有的键值对
for (Map.Entry<String, Integer> entry : entrySet) {
    System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue());
}

输出结果:

key:a, value:1
key:b, value:2
key:c, value:3

可以看到,使用entrySet()方法可以一次性获取Map中所有的键值对,比使用keySet()value()方法分别获取key和value更方便。

总结

value()entrySet()方法都可以用于获取Map中的value,但是它们的不同点在于返回值的类型。value()方法返回一个包含所有value的Collection,而entrySet()方法返回一个包含所有键值对的Set。这两种方法在不同的场景下有着不同的应用,需要开发者根据具体需求来选择使用哪种方法。