gpt4 book ai didi

java - 如何根据嵌套对象属性对列表进行排序

转载 作者:行者123 更新时间:2023-12-02 09:27:39 26 4
gpt4 key购买 nike

我是 Java 流新手,我只想对我的对象的键进行排序。

所以,我尝试了这样的方法,它有效

List<FooSelect> li= Arrays.stream(obj.getFoos().getFoo())  //Stream<Foo>
.map(Foo::getSelect) //Stream<FooSelect>
.sorted(Comparator.comparing(FooSelect::getFoosKey)) //Stream<FooSelect>
.collect(Collectors.toList());

这根据我想要的进行排序。

但是我得到的结果是List<FooSelect>对象,虽然我想要它在 List<Foo> .

排序后如何更改映射?

我想再次更改

中的响应
//Stream<Foo> after it is sorted.

我想要类似的东西

List<Foo> li = same result of code above;
<小时/>
Class : FooSelect
just has some String fields
string FooKey
string FooTKey

以及 getter 和 setter(其中之一是我正在排序的 getFoosKey)

Class: Foo
private FooSelect select
private FooInsert insert

Foo(select, insert)

public FooSelect getSelect() {
return select; }

同样的设置方法。

最佳答案

您可以在Comparator.comparing中使用lambda表达式来代替方法引用

List<Foo> res = foos.stream()             
.sorted(Comparator.comparing(fo->fo.getSelect().getFooKey()))
.collect(Collectors.toList());

如果只是排序,你甚至不需要流

foos.sort(Comparator.comparing(fo->fo.getSelect().getFooKey()));

关于java - 如何根据嵌套对象属性对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58222952/

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