Java 如何在HashMap中找到未知键的值并将其转换为int?

Java 如何在HashMap中找到未知键的值并将其转换为int?,java,Java,其实不需要太多的解释,只是想知道怎样做才是最好、最有效的方法。HashMap只剩下一个键(使用map.size()==1进行检查),但是该键未知。HashMap是。 非常感谢所有想帮忙的人 使用keySet方法获取集合中的密钥,然后遍历集合以获取密钥,如下所示 HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); map.put(5, 1); // some map with on

其实不需要太多的解释,只是想知道怎样做才是最好、最有效的方法。HashMap只剩下一个键(使用map.size()==1进行检查),但是该键未知。HashMap是

非常感谢所有想帮忙的人

使用keySet方法获取集合中的密钥,然后遍历集合以获取密钥,如下所示

    HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(5, 1); // some map with only one key-value pair

    int a = map.keySet().iterator().next(); // obtain keyset, get iterator and get the next element (since you know map size is 1)

    System.out.println(a);
HashMap map=newhashmap();
地图。放置(5,1);//某些映射只有一个键值对
int a=map.keySet().iterator().next();//获取键集,获取迭代器并获取下一个元素(因为您知道映射大小为1)
系统输出打印项次(a);

使用keySet方法获取集合中的密钥,然后遍历集合以获取密钥,如下所示

    HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
    map.put(5, 1); // some map with only one key-value pair

    int a = map.keySet().iterator().next(); // obtain keyset, get iterator and get the next element (since you know map size is 1)

    System.out.println(a);
HashMap map=newhashmap();
地图。放置(5,1);//某些映射只有一个键值对
int a=map.keySet().iterator().next();//获取键集,获取迭代器并获取下一个元素(因为您知道映射大小为1)
系统输出打印项次(a);
作为
.keySet()
.entrySet()
返回
Set
您不能像使用
列表那样直接使用
get
操作

  • 通过
    您可以:

    int unknowKey = map.keySet().stream()
                                .findAny()
                                .orElseThrow(IllegalArgumentException::new);
    
  • 或者,使用
    迭代器

    int unknowKey = map.keySet().iterator().next();
    

  • 就效率而言,
    迭代器
    确实更优越:

    Benchmark         Mode   Cnt    Score    Error   Units
    MyBench.iterator  avgt     5   10,663  ± 0,175   ns/op
    MyBench.stream    avgt     5   47,960  ± 4,819   ns/op
    
    作为
    .keySet()
    .entrySet()
    返回
    Set
    您不能直接使用
    get
    操作,如使用
    List

  • 通过
    您可以:

    int unknowKey = map.keySet().stream()
                                .findAny()
                                .orElseThrow(IllegalArgumentException::new);
    
  • 或者,使用
    迭代器

    int unknowKey = map.keySet().iterator().next();
    

  • 就效率而言,
    迭代器
    确实更优越:

    Benchmark         Mode   Cnt    Score    Error   Units
    MyBench.iterator  avgt     5   10,663  ± 0,175   ns/op
    MyBench.stream    avgt     5   47,960  ± 4,819   ns/op
    
    可以使用Map#keySet()获取一组密钥。其余的应该不言自明。您还可以使用Map#entrySet()并迭代这些条目。条目是包含键和值的对象。例如,
    For(Entry:map.entrySet()){print(Entry.getKey()+Entry.getValue())}
    可以使用map#keySet()获得一组键。其余的应该是自解释的。也可以使用map#entrySet()并对这些项进行迭代。项是包含键和值的对象。例如,
    (条目:map.entrySet()){print(条目.getKey()+条目.getValue();}
    Nice analysis:)…我认为转换到流需要时间可能benice analysis:)…我认为转换到流可能需要时间