我是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
排序后如何更改映射?
我想再次更改中的响应
//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; }
同样的方式setter。
可以在比较器中使用lambda表达式。比较,而不是方法参考
List<Foo> res = foos.stream()
.sorted(Comparator.comparing(fo->fo.getSelect().getFooKey()))
.collect(Collectors.toList());
仅仅是分类,你甚至不需要流
foos.sort(Comparator.comparing(fo->fo.getSelect().getFooKey()));
删除map
。map
更改流中的对象。将排序语句更新为
.sorted(Comparator.comparing(f -> f.getSelect().getFoosKey()))
我用的是Java 8号。我有一份汽车物品清单。我想按特定的顺序对它们进行排序。 每个汽车对象都属于一个模型。我喜欢按型号对汽车对象列表进行排序。排序后的列表应该是按照以下顺序,有车型的轿车SEDAN,然后是宝马,然后是独角兽。 所以当我打印排序后的列表时,它应该是这样的 如何使用自定义比较器在模型枚举上实现这种排序顺序。 如果你能帮忙,我很感激
问题内容: 我在表中列出了用户列表。 活动用户应在非活动用户上方排序。 我正在尝试使用lodash 函数进行此操作,但未成功。 这里是如何的外观: 这是带有用户数组和sortBy loadsh函数代码的代码笔:https ://codepen.io/nikolatrajkovicq/pen/pGXdpM?editors = 1112 任何地方都欢迎。 问题答案: 您可以这样使用: 您可以只减去中的
我试图排序基于一个nullable ArrayList在java 8列表。 列表如下 我正在尝试使用streams sort根据患者就诊日期(就诊列表中的第一个元素)的降序对患者对象进行排序。空值应该放在最后。最终结果必须是 我尝试过以下方法,但即使在空检查之后,也会出现空指针异常。
我有一个对象列表,我需要按其中一个对象属性对其进行排序。 我可以用下面的代码按升序排序 但是,这是按升序排序列表,而我需要做的是按降序排序。在对对象列表进行排序时,这可能吗?
假设我有一个自定义对象的ArrayList,例如 如何按路径、格式、大小或日期添加对其进行排序? 谢了!
问题内容: 我需要通过对象属性之一的一个属性比较对象数组。 我在做 : 它没有编译,有人知道怎么做吗? 谢谢。 问题答案: 这是代码中导致错误的部分 您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。对任何类型的对象的方法的引用如下所示: 但是方法引用不是对象,并且没有成员可以访问。使用此代码,您尝试访问引用的成员变量(并且不能) 另外,方法引用不是类,因此您不能从它们中获取另一个方法引