当前位置: 首页 > 面试题库 >

转换集>到HashMap

凌钊
2023-03-14
问题内容

代码的某一时刻,我Set<Map.Entry<K, V>>从地图创建了一个。现在,我想重新创建相同的地图表单,所以我想将其HashSet<Map.Entry<K, V>>转换为HashMap<K, V>。Java是否有执行此操作的本地调用,还是我必须遍历set元素并手动构建映射?


问题答案:

Java中没有内置API可在HashSet和之间直接转换HashMap,您需要遍历set和使用Entryfill in map。

一种方法:

Map<Integer, String> map = new HashMap<Integer, String>();
    //fill in map
    Set<Entry<Integer, String>> set = map.entrySet();

    Map<Integer, String> mapFromSet = new HashMap<Integer, String>();
    for(Entry<Integer, String> entry : set)
    {
        mapFromSet.put(entry.getKey(), entry.getValue());
    }

尽管这里的目的是什么,但是如果您进行任何更改,Set也将反映Map为by Map.entrySet所返回的set by backup
Map。见javadoc下文:

Set > java.util.Map.entrySet()

返回此映射中包含的映射的Set视图。该集合由地图支持,因此对地图的更改会反映在集合中,反之亦然。如果在对集合进行迭代时修改了映射(除非通过迭代器自己的remove操作或通过迭代器返回的映射条目上的setValue操作),则迭代的结果是不确定的。该集合支持元素删除,该元素通过Iterator.remove,Set.remove,removeAll,retainAll和clear操作从映射中删除相应的映射。它不支持add或addAll操作。



 类似资料:
  • 问题内容: 我需要从中退出,但我不知道该怎么做。以下失败: 我该如何修复它才能起作用? 问题答案: 使用采用相同大小的类型化数组参数的方法。 也可以使用其他大小,但是这将迫使该方法创建一个新数组以返回而不是重新使用所提供的参数,这可能会导致效率降低。 另请参阅的源代码。

  • scikit-learn 提供了一个用于转换数据集的库, 它也许会 clean(清理)(请参阅 预处理数据), reduce(减少)(请参阅 无监督降维), expand(扩展)(请参阅 内核近似)或 generate(生成)(请参阅 特征提取) feature representations(特征表示). 像其它预估计一样, 它们由具有 fit 方法的类来表示, 该方法从训练集学习模型参数(例如

  • 我想获取地图的值,找到min值,并为地图的每个条目构造一个新的CodesWitMinValue实例。我希望使用Java11个流,我可以在多行中使用多个流(一个用于min值,一个用于转换)来实现这一点。是否可以使用java 11流和收集器在单行中实现?谢谢。

  • 当建立索引时,Sphinx从指定的数据源获得文本文档,将文本分成词的集合,再对每个词做大小写转换,于是“Abc”,“ABC”和“abc”都被当作同一个词(word,或者更学究一点,词项term) 为了正确完成上述工作,Sphinx需要知道: 源文本是什么编码的; 那些字符是字母,哪些不是; 哪些字符需要被转换,以及被转换成什么. 这些都可以用charset_type和charset_table选项

  • 问题内容: 问题 与新HashSet(Collection)等效的Scala)相关,如何将Java集合(例如)转换为Scala集合? 我实际上是在尝试将Java API调用转换为Spring的 (返回a )成Scala不可变。因此,例如: 这似乎有效。欢迎批评! 问题答案: 您的最后一条建议有效,但您也可以避免使用: 请注意,默认情况下,由于提供了此功能。

  • 问题内容: 例如,我目前正在这样做: 你能打败这个吗? 问题答案: