Map接口存在于Java.util
包中,它主要提供了三个方法KeySet()
、entrySet()
和values()
。这些方法分别用于检索Map的键、Map的键值对以及Map的值。由于这些方法是Map接口的一部分,所以可以在所有实现Map接口的类中使用这些方法,比如TreeMap
、HashMap
和LinkedHashMap
。
方法1:values()方法
Java中HashMap类的java.util.HashMap.values()
方法用于从Map
的值中创建一个集合。它基本上返回HashMap
中数值的一个集合视图。
语法:
hashMap.values()
- 参数:该方法不接受任何参数。
- 返回值:该方法用于返回包含
Map
所有值的集合视图。
示例:
// Java program demonstrating use of values() method
// Importing all input output classes
import java.io.*;
// Importing HashMap, Iterator, Map and Stream classes
// from the java.util package
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
// Class
class YiibaiDemo {
// Main driver method
public static void main(String[] args)
{
// Creating a Map object
// Declaring object of String and integer type
Map<Integer, String> map = new HashMap<>();
// Now, adding the elements to the object created
// Elements here are key- value pairs
// Custom input objects
map.put(1, "Yiibai");
map.put(2, "For");
map.put(3, "Geeks");
// Creating an object of Integer type
Iterator<String> itr = map.values().iterator();
// Condition check which holds true till
// there is single elementusing hasNext() method
while (itr.hasNext()) {
System.out.print(itr.next() + " ");
}
// New line
System.out.println();
for (String key : map.values()) {
System.out.println(key);
}
// New line
System.out.println();
System.out.println(map.values().toString());
}
}
运行结果:
Yiibai For Geeks
Yiibai
For
Geeks
[Yiibai, For, Geeks]
方法2: entrySet() 方法
Java 中的 java.util.HashMap.entrySet()
方法用于从哈希映射中包含的相同元素创建一个集合。它基本上返回哈希映射的集合视图,或者可以创建一个新集合并将 map 元素存储到其中。
语法:
hash_map.entrySet()
- 参数:该方法不采用任何参数。
- 返回值:该方法返回与哈希映射具有相同元素的集合。
示例
// Java program demonstrating use of entrySet() method
// Importing Map,Stream, hashMap and Iterator classes
// from the java.util package
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
// Class
class YiibaiDemo {
// Main driver method
public static void main(String[] args)
{
// Creating an object of Map class
// Declaring object of Integer and String type
Map<Integer, String> map = new HashMap<>();
map.put(1, "Yiibai.com");
map.put(2, "For");
map.put(3, "Geeks");
// Case 1
for (Map.Entry<Integer, String> entry :
map.entrySet()) {
// Corresponding key
Integer key = (Integer)entry.getKey();
// Corresponding pair
String value = entry.getValue();
// Printing all the corresponding key-value
// pairs
System.out.println(key + "=" + value);
}
// Case 2
Iterator<Map.Entry<Integer, String> > itr = map.entrySet().iterator();
while (itr.hasNext()) {
System.out.println(itr.next());
}
// Case 3
Stream.of(map.entrySet().toArray())
.forEach(System.out::println);
}
}
运行结果:
1=Yiibai.com
2=For
3=Geeks
1=Yiibai.com
2=For
3=Geeks
1=Yiibai.com
2=For
3=Geeks
下面来看看values()
方法和entrySet()
方法的区别
values() 方法 | entrySet() 方法 |
---|---|
该方法返回Map中包含的所有值的集合视图。 | 该方法返回Map中所有映射的集合视图,即它返回一组键、值对。 |
如果Map发生了任何变化,那么它们也可以在集合中观察到,因为方法集合是由Map支持的。 | 如果Map发生了任何变化,那么它们也可以在集合中被观察到,因为集合是由Map支持的。 |
当只需要处理Map中的值时,就可以使用这种方法。 | 当需要处理Map中的键和值时,可以使用这种方法。 |
Java Map 中的 value()和entrySet()方法的区别
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Java Map 中的 value()和entrySet()方法的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-value-vs-entryset-method-in-java-map.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。