gpt4 book ai didi

java stream sort() object to descended set of integers 失败

转载 作者:行者123 更新时间:2023-11-29 06:50:27 25 4
gpt4 key购买 nike

<分区>

我有以下内容:

列出 someObjectList(里面的一个变量是 years 已经被 PosgreSQL 排序为 DESC)

假设从 2018 年到 2016 年(我需要它作为集合,因为许多 someObject 包含相同的年份值,我只需要 DESC 顺序中的唯一值

我放在Stream中是这样的:

Set<Integer> yearsSet = someObjectList.stream()
.map(SomeObject::getYears)
.collect(Collectors.toSet())

它返回集合,但 ASC 年份如 2016、2017、2018 不像 objectsList ([0].getYears()>2018, [1].getYears()> 2017...etc) 在开头

我还以两种方式使用了以下 .sort() 方法:

someObjectList.stream().map(SomeObject::getYears)
.sorted(Comparator.comparing(Integer::intValue).reversed())
.collect(Collectors.toSet())

someObjectList.stream().map(SomeObject::getYears)
.sorted(Comparator.comparing(Integer::intValue))
.collect(Collectors.toSet())

两者都没有做任何事情(也许我错误地使用了 Integer::intValue)?

然后我找到了一个丑陋的解决方案(这里我得到了列表,但没关系,因为没有收到重复的):

someObjectList.stream().map(SomeObject::getYears)
.collect(Collectors.toSet())
.stream().sorted(Comparator.comparing(Integer::intValue).reversed())
.collect(Collectors.toList())

它完成了工作,但它很丑。任何建议我哪里做错了或者我怎么能更换这个“香肠”部分?

我在某处读到 map 不能轻易排序,也许它适用于集合?

感谢您的宝贵时间和建议

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