- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
FundingRank 和 SourceBucket 是枚举,但本质上是 int
enum FundingRank {
LESS_THAN_0(0),
LESS_THAN_1(1),
LESS_THAN_100(100);
private final int rank;
FundingRank(int i) {
this.rank = i;
}
}
enum ScoreBucket {
MORE_THAN_1000(1000),
MORE_THAN_500(1000),
MORE_THAN_100(100),
MORE_THAN_10(10);
private final int bucket;
ScoreBucket(int i) {
this.bucket = i;
}
}
我有一个
TreeMap<FundingRank, TreeMap<scoreBucket, List<Kids>> >
持有数据,如
fundingRank scoreBucket List<Kids>
0 1000 List(with 1 elements)
500 List(with 2 elements)
100 List(with 4 elements)
10 List(with 3 elements)
1 1000 List(with 4 elements)
500 List(with 7 elements)
100 List(with 4 elements)
10 List(with 3 elements)
现在我想找到元素最小值
fundingRank
最大
scoreBucket
至少有 5 个 child ,如果没有,则最少
fundingRank
最大
scoreBucket
myMap.entrySet().stream()
.filter(e -> e.getvalue().entryset().stream()
.filter(e2 ->e2.getvalue().size()).findfirst();
Output sorted map like this:
1 500 List(with 7 elements)
0 100 List(with 4 elements)
1 1000 List(with 4 elements)
1 100 List(with 4 elements)
0 10 List(with 3 elements)
...
所以,我试图对 TreeMap
最佳答案
如果您想找到 [fundingRank, scoreBucket, list_Kids]
三胞胎与 min FundingRank
和最大 ScoreBucket
,但仅考虑超过 5 个 child 的三胞胎,您可以流式传输外部和内部 map 的条目并使用自定义 Comparator
找到它:
Optional<Map.Entry<FundingRank, Map.Entry<ScoreBucket, Integer>>> triplet =
outerMap.entrySet().stream()
.flatMap(outerEntry -> outerEntry.getValue().entrySet().stream()
.map(innerEntry -> Map.entry(
outerEntry.getKey(),
Map.entry(innerEntry.getKey(), innerEntry.getValue().size()))))
.min(Comparator.comparingInt(t -> t.getValue().getValue() >= 5 ? 0 : 1)
.thenComparing(t -> t.getKey())
.thenComparing(t -> t.getValue().getKey(), Comparator.reverseOrder())
.thenComparing(t -> t.getValue().getValue(), Comparator.reverseOrder()));
triplet.ifPresent(it -> /* do something with the triplet */);
这将创建三元组
Map.Entry<FundingRank, Map.Entry<ScoreBucket, Integer>>
并根据给定的
Comparator
找到最小三元组,(我希望)满足您的要求。
Comparator
在
Stream.min
首先按
0
排序或
1
,这是一个标志,指定是否有超过 5 个 child 。这个标志是
0
如果有超过 5 个 child ,那么首先出现超过 5 个 child 的三胞胎。然后,比较器按
FundingRank
排序升序,然后由
ScoreBucket
下降,最后,如果有平局,则会被下降的 child 的实际数量打破(以防万一)。
Map.entry(...)
创建条目的方法。如果您使用的是 Java 8,您应该使用
new AbstractMap.SimpleEntry(...)
创建条目.
关于java - 如何过滤 TreeMap<MyKey, Map<Key2,List<Kids>>> ,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64364337/
我读过很多关于红黑树的文章,其中操作需要 O(log n) 时间。我不太清楚它是如何工作的,以及与二分搜索相比, TreeMap 实际上如何使用红黑树算法来平衡树树。 引用链接 https://www
我正在尝试实例化 TreeMap使用Comparator应该能够访问所述 TreeMap ,即它将用于的那个(我猜“将”一定正是问题所在......): final Map map = new Tre
这很好用: TreeMap x_probs_org = new TreeMap(); 但是这个: TreeMap > x_probs = new >(); 导致以下错误: error: expec
我正在尝试模拟生产系统。为了简要解释我打算做什么,我将创建一个面板,其中有一些表来保存值(用于几个工作站和作业类型的属性(见下图))。当我运行它时,这些值应该被存储以供进一步处理。 在上一个问题中,有
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 Improve th
大家好,我是 highcharts 的新手。因为在 TreeMap 中只显示系列名称而不显示值。工具提示中显示的名称和值。但我想在 TreeMap 中显示名称和值。请知道的人回复我。 var seri
Java 8 的新手,我无法弄清楚这一点。我有两张类型为 TreeMap 的 map , 一个叫做 patternMap和另一个answerMap . patternMap被硬编码以寻找键值对的特定模
我对 map 还很陌生,而且我很困惑。我有以下 TreeMap : TreeMap> routes = new TreeMap>(); 例如,我的 TreeMap 填充如下: {A={B=10,
这对我来说似乎太棘手,无法正确执行此操作。 我有一个TreeMap ,我正在获取其中的子图: public static reqObj assignObj(reqObj vArg, i
我需要你的帮助,我不明白发生了什么? 我试图在两个 Activity 之间发送一个 TreeMap,代码是这样的: class One extends Activity{ public void s
我们在一个方法中定义了一个新的 TreeMap 并将其传递给另一个方法: TreeMap aTreeMap = new TreeMap(); //call another method to doSo
我认为 C++ std::map.lower_bound 等于 java 的 TreeMap.higherEntry。C++ std::map 中 java 的 TreeMap.lowerEntry
作为最佳实践, float 的集合类型实例不应超过一个。例如,Nil 是 scala 库中的一个 case 对象。 但是, TreeMap 和 TreeSet 在每次 empty() 调用时都会创建一
我有更新点燃缓存记录的代码逻辑, 缓存定义为: IgniteCache> txInfoCache; 键是缓存类型字符串,对于值我使用TreeMap来保持记录有序(我需要对数据进行排序),但是更新所用的
我有一个自己的扩展 TreeMap,名为 MyTreeMap,它用于根据作为参数 MyTreeMap 传递的 DAO 动态创建 TreeMap。还,Hazelcast 提供了自己的 TreeMap,我
我想以树的形式可视化马赛克图。例如 mosaicplot(~ Sex + Age + Survived, data = Titanic, color = TRUE) 现在我想要的是以树的形式表示它,其
我正在尝试使用 R 包树状图创建一个树状图,该树状图类似于包中示例中的树状图。 library(treemap) data(GNI2010) treemap(GNI2010, index=c(
如何捕获最后一个节点的点击事件? 我按照本教程(http://bl.ocks.org/ganeshv/6a8e9ada3ab7f2d88022)制作了树状图。在我的目的中,我想让最后一个节点可点击,然
我有一个 2 级的 highchart TreeMap ,用于显示股票市场的价格,每个部分的值(value)几乎每秒钟都在变化,我想更新每个部分的值,但正如我所见在 highchart 中,我们可以通
我想存储元素的 ID 及其对应的坐标。为此,我使用了一个 TreeMap,其中 Coordinates 是一个包含 int x 和 int y 的类。现在,为了将数据插入 map ,我可以这样写: t
我是一名优秀的程序员,十分优秀!