Java Map中keySet()和entrySet()方法的区别

Java Map中keySet()和entrySet()方法的区别

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

keySet()方法。

Java中的java.util.HashMap.keySet()方法是用来从散列图中包含的关键元素中创建一个集合。它基本上返回一个键的集合视图,或者我们可以创建一个新的集合并将键元素存储在其中。

语法:

hash_map.keySet()

参数: 该方法不接受任何参数。

返回值: 该方法返回一个具有哈希图键值的集合。

// Java program demonstrating use of keySet()
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
 
class GFG {
    public static void main(String[] args)
    {
        // making map of Integer keys and String values
        Map<Integer, String> map = new HashMap<>();
       
        // adding the key-value pairs to map
        map.put(1, "Geeks");
        map.put(2, "For");
        map.put(3, "Geeks");
 
        // below are the different and simple ways out of
        // many  to iterate over the keySet()
 
        // iterating the keySet() using iterator
        Iterator<Integer> itr = map.keySet().iterator();
       
        while (itr.hasNext())
        {
            System.out.print(itr.next() + " ");
        }
        System.out.println();
 
        // iterating the keySet() using for loop
        for (Integer key : map.keySet()) {
            System.out.print(key + " ");
        }
 
        System.out.println();
       
        // iterating over the keySet() by converting the map
        // to the string
        System.out.println(map.keySet().toString());
    }
}

输出

1 2 3 
1 2 3 
[1, 2, 3]

entrySet()方法 :

Java中的java.util.HashMap.entrySet()方法是用来从散列图中包含的相同元素中创建一个集合。它基本上返回散列地图的集合视图,或者我们可以创建一个新的集合并将地图元素存储到其中。

语法:

hash_map.entrySet()

参数: 该方法不接受任何参数。

返回值: 该方法返回一个具有与哈希图相同元素的集合。

// Java program demonstrating use of  entrySet()
 
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
 
class GFG {
    public static void main(String[] args)
    {
        // making map of Integer keys and String values
        Map<Integer, String> map = new HashMap<>();
       
        // adding the key-value pairs to map
        map.put(1, "Geeks");
        map.put(2, "For");
        map.put(3, "Geeks");
 
        // below are the different and simple ways out of
        // many  to iterate over the entrySet()
 
        // iterating the key value pair using for each loop
        for (Map.Entry<Integer, String> entry :map.entrySet())
        {
            Integer key = (Integer)entry.getKey();
            String value = entry.getValue();
 
            System.out.println(key + "=" + value);
        }
       
        // iterating the key-value pairs using iterator
        Iterator<Map.Entry<Integer, String> > itr = map.entrySet().iterator();
       
        while (itr.hasNext()) {
            System.out.println(itr.next());
        }
       
        // iterating the key-value pairs using Stream.of()
        // method
        Stream.of(map.entrySet().toArray())
            .forEach(System.out::println);
    }
}

输出

1=Geeks
2=For
3=Geeks
1=Geeks
2=For
3=Geeks
1=Geeks
2=For
3=Geeks
keySet() entrySet()
该方法返回地图中存在的所有键的Set视图,即它返回一个键的集合。 该方法返回地图中所有映射的Set视图,即返回一组键、值对。
如果地图发生任何变化,那么它们也可以在集上观察到,因为集是由地图支持的。 对于entrySet()方法,如果地图发生任何变化,那么它们也可以在set中观察到,因为set是由地图支持的。
如果使用keySet()遍历所有的地图对,那么keySet()的性能比entrySet()要差,因为对于每个键,我们必须使用get()函数来访问其相应的值。 当使用entrySet()遍历地图的所有对时,entrySet()的性能比keySet()好很多。
它的语法是 -: hashmap.keySet() 它的语法是 -: hashmap.entrySet()
它不接受任何参数。 它没有例外。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程