【问题标题】:Get first k values from HashMap从 HashMap 中获取前 k 个值
【发布时间】:2019-03-23 19:50:53
【问题描述】:

我正在尝试从哈希图中获取前 k 个值。

我知道如何从哈希图中获取所有值,以及如何遍历所有值。有没有什么捷径可以从 hashmap 生成前 k 个值

for (Map.Entry<String, Integer> en : hmap.entrySet()) 
{ 
        System.out.println("Key = " + en.getKey() + ", Value = " + en.getValue());
}

【问题讨论】:

  • "HashMap 不维护插入顺序,但是有一个称为 LinkedHashMap 的替代方法可以维护插入顺序。或者,如果您希望键按自然顺序排序(使用键 compareTo 方法),那么您可能会选择 TreeMap。” (stackoverflow.com/questions/26296911/does-hashmap-autosort)
  • 哈希图中没有“第一”的概念。

标签: java string hashmap


【解决方案1】:

Map 接口的第一个元素的概念未定义。如何在 cmets 中提到它,您可以在 first 项有意义的地方使用 LinkedHashMapTreeMap

如果你只是想获得一些限制数量的地图值,你可以使用带有limit的stream api:

hmap.entrySet().stream()
    .limit(2)
    .collect(Collectors.toList());

【讨论】:

    猜你喜欢
    • 2016-03-17
    • 2013-03-15
    • 2014-03-22
    • 2011-03-26
    • 1970-01-01
    • 2017-07-03
    • 2017-08-10
    • 2012-04-12
    相关资源
    最近更新 更多