gpt4 book ai didi

java - 根据某些规范创建 HashMap 的子集?

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:12 25 4
gpt4 key购买 nike

所以我有以下 HashMap:

HashMap<String, List<someDataType>> map ;

我想创建一个仅由 map 中的 k/v 对组成的新 HashMap具有长度小于某个“x”的值(列表)。我知道如何执行此操作的唯一方法是遍历 HashMap 并将 k/v 对放入新的 HashMap。有没有更简洁的方法来实现我正在寻找的东西?谢谢。

最佳答案

使用 Guava :

Map<String, List<String>> newMap = 
Maps.filterEntries(originalMap, new MyEntryPredicate(10));

哪里:

private static class MyEntryPredicate implements Predicate<Map.Entry<String, List<String>>> {

// max list length, exclusive
private int maxLength;

private MyEntryPredicate(int maxLength) {
this.maxLength = maxLength;
}

@Override
public boolean apply(Map.Entry<String, List<String>> input) {
return input != null && input.getValue().size() < maxLength;
}
}

关于java - 根据某些规范创建 HashMap 的子集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17330487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com