Map接口存在于Java.util包中,它主要提供了三个方法KeySet()entrySet()values()。这些方法分别用于检索Map的键、Map的键值对以及Map的值。由于这些方法是Map接口的一部分,所以可以在所有实现Map接口的类中使用这些方法,比如TreeMapHashMapLinkedHashMap

方法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
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。