标签: entryset

在Map的entrySet中流与Iterator

据我了解,下面的代码应打印true,因为两者StreamIterator指向的第一个元素.

但是,当我运行以下代码时,它正在打印false:

final HashMap<String, String> map = new HashMap<>();
map.put("A", "B");
final Set<Map.Entry<String, String>> set = Collections.unmodifiableMap(map).entrySet();
Map.Entry<String, String> entry1 = set.iterator().next();
Map.Entry<String, String> entry2 = set.stream().findFirst().get();
System.out.println(entry1 == entry2);
Run Code Online (Sandbox Code Playgroud)

不同行为的原因是什么?

java iterator java-8 java-stream entryset

19
推荐指数
2
解决办法
1686
查看次数

迭代地图输入集

我需要遍历地图的入口集,我不知道它的参数化类型.

迭代这样的入口集时,为什么不编译?

public void myMethod(Map anyMap) {
    for(Entry entry : anyMap.entrySet()) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个编译:

public void myMethod(Map anyMap) {
    Set<Entry> entries = anyMap.entrySet();
    for(Entry entry : entries) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

这也编译(我不能使用这个,因为我不知道地图的类型):

public void myMethod(Map<String, String> stringMap) {
    for(Entry<String,String> entry : stringMap.entrySet()) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

java generics loops map entryset

16
推荐指数
2
解决办法
3万
查看次数

在什么情况下,map.entrySet返回的Map.Entry将为NULL

我遇到了一个代码片段,它使用其入口集迭代地图,并仅在entry!= null时执行一些操作

据我所知,即使我们没有在地图中输入任何内容,也会map.entrySet返回一个空集null.即使我把{null,null}那个条目放在一起[null=null]就是这个元素的实例.但实例不会为空.

Map<String, String> map = new HashMap<String, String>();
        map.put(null, null);
        map.put(string1, string1);
        for(Map.Entry<String, String> entry : map.entrySet()){
            if(entry != null){
                                  //do something
            }

        }
Run Code Online (Sandbox Code Playgroud)

我有以下基本问题:

  1. 在什么情况下HashMap中的条目将为NULL?
  2. 支票甚至有效

我坚信if(entry != null)谨慎,应该将其删除.我只想确定.

java dictionary hashmap entryset

7
推荐指数
2
解决办法
4359
查看次数

如何获得HashMap中的3个最高值?

我有一个哈希图,如下所示:

    HashMap<String, Integer> hm = new HashMap<String, Integer>;
    hm.put("a", 1);
    hm.put("b", 12);
    hm.put("c", 53);
    hm.put("d", 2);
    hm.put("e", 17);
    hm.put("f", 8);
    hm.put("g", 8);
Run Code Online (Sandbox Code Playgroud)

我如何获得具有 3 个最高值的键?所以它会返回:

    "c", "e", "b"
Run Code Online (Sandbox Code Playgroud)

谢谢。

java sorting hashmap entryset

5
推荐指数
1
解决办法
762
查看次数

如何让entrySet()在新行显示键值对?(java)

我有一个很长的 Map (int, int[] ) ;

我使用map.entrySet(),它返回我的地图的设置视图

Map <Integer, ArrayList<Integer>>res = function() ;
    System.out.println( res.entrySet() ) ;
Run Code Online (Sandbox Code Playgroud)

我想在新行上显示每个条目:

[1=[1, 47, 432, 433, 527, 678, 679, 680, 820, 904],

2=[1, 31, 47, 66, 118, 139, 194, 195, 196, 217]

3 = [........................],

10 = [........................],

但我把它全部打印在一行上(它很长):

[1=[1, 47, 432, 433, 527, 678, 679, 680, 820, 904], 2=[1, 31, 47, 66, 118, 139, 194, 195, 196, 217], 3 =[123,23,……],…………

如何让我的设置在新行上打印每个键值对? 或者默认情况下逗号在逗号之后并且在一行中?

java dictionary hashmap set entryset

2
推荐指数
1
解决办法
2923
查看次数

2
推荐指数
1
解决办法
181
查看次数

如何从Map <int,int []>中提取整数数组的长度?

如何从`Map中提取整数数组的长度?

Map <Integer, ArrayList<Integer>> res = function() ;

for (Map.Entry entry : res.entrySet()) {
  System.out.println(entry.getValue());        
}   
Run Code Online (Sandbox Code Playgroud)

System.out.println(entry.getValue().size());不起作用.

java map entryset

0
推荐指数
1
解决办法
43
查看次数

打印HashMaps的HashMap:Map.Entry或java8

我有一个方法,它返回散列图的hashmap

HashMap<String, HashMap<String, String>> mapofmaps = abcd(<String>, <Integer>);
Run Code Online (Sandbox Code Playgroud)

我试图使用以下代码打印外部hashmap

for (Entry<String, HashMap<String, String>> entry : mapofmaps.entrySet()) {
            String key = entry.getKey();
            System.out.println(key);

      HashMap<String, String> value = entry.getValue();
            System.out.println(key + "\t" + value);
        }
Run Code Online (Sandbox Code Playgroud)

我想迭代内部地图.那里的入口变量是什么(代码中的???).

for (Entry<String, HashMap<String, String>> entry : mapofmaps.entrySet()) {
                String key = entry.getKey();
                System.out.println(key);
    for(Entry<String, HashMap<String, String>> entry : ????.entrySet()){
          HashMap<String, String> value = entry.getValue();
                System.out.println(key + "\t" + value);
            }}
Run Code Online (Sandbox Code Playgroud)

我打印哈希图的逻辑是否正确?或者有更好的方法吗?

java hashmap entryset

0
推荐指数
2
解决办法
4379
查看次数

导入 java.util.* 后使用 entrySet() 函数时找不到符号

我正在使用一个函数Map.entrySet()。当我使用import java.util.*它时,会出现找不到符号错误。但是,当我这样做时,import java.util.Map.Entry它会编译。不应该包括“*”Map.Entry?

我错过了什么吗?

使用导入的底线java.util.*给了我找不到符号错误。对于相同的代码导入java.Map.Entry;没有。为什么?

谢谢你。

java import hashmap entryset

0
推荐指数
1
解决办法
8293
查看次数