gpt4 book ai didi

java - Groovy/Java 映射排序

转载 作者:行者123 更新时间:2023-12-04 04:53:13 25 4
gpt4 key购买 nike

我在 map 中有带有标志的百分比值,例如-
[44.4:真,0.0:假,44.4:假,38.9:假,0.0假]

我想按降序对它们进行排序。我使用的代码丢失了重复的键。我不想丢失它们,因为我想在输出中显示所有值。

def secDisc = [:]
def discount = plan."${section}"
if(plan."${section}"!=null && plan.bluePlan)
secDisc."$discount" = true
else if(plan."${section}"!=null && !plan.bluePlan)
secDisc."$discount" = false
secDisc = secDisc.sort {a, b -> b.key <=> a.key}
secDisc.each{disc, flag->

println "disc- $disc flag- $flag"
}

当我打印它时,只剩下一个 0.0 值。
谢谢!

最佳答案

我会重新考虑您正在使用的数据结构类型。您将 map 的值设为 boolean 值,但您试图将多个相同的键放入 map 中。这是行不通的。

相反,我会尝试将值设为 boolean 值列表,因此您的示例变为:

 [44.4: [true, false], 0.0: [false, false], 38.9: [false]]

这将确保重复的 key 永远不会丢失。此外,排序会更简单。此外,正如@tim_yates 所提到的,我会将您的 key 转换为具有固定小数位数的字符串,以确保浮点数学不会产生在第 12 位小数位中略微偏离的值。

您没有提到排序对于具有不同值的相同键是否重要。

关于java - Groovy/Java 映射排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17115522/

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