gpt4 book ai didi

Java 8 对类成员的属性进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:17 26 4
gpt4 key购买 nike

类声明:

class Entity {
String name;
SubEntity subEntity; // subEntity has a method getAmount() which returns int
}

我知道使用 Java 8 我们可以这样排序:

entities.sort(Comparator.comparing(Entity::name));

但是有没有一种方法可以根据子实体的属性对其进行排序,例如:

entities.sort(Comparator.comparing(Entity::SubEntity::getAmount()));

P.S: 任何一行都全下。

最佳答案

不是通过使用方法引用,不是 - 但使用 lambda 很容易:

entities.sort(Comparator.comparing(entity -> entity.getSubEntity().getAmount()));

从根本上说,Comparator.comparing 并没有什么神奇之处。 - 它只接受 Function<? super T,? extends U> keyExtractor参数,因此您需要想出一些方法来创建这样的函数。方法引用是创建函数的一种便捷方式,但 lambda 表达式更为灵活。

关于Java 8 对类成员的属性进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48095224/

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