gpt4 book ai didi

使用比较器和内部类进行 Java 排序

转载 作者:行者123 更新时间:2023-12-02 10:56:35 27 4
gpt4 key购买 nike

考虑到 Java 类的这种组合:

public class OuterClass
{
public String field01;
public int field02;
public InnerClass innerField
// ...getters, setters

public class InnerClass
{
public int innerField01;
public BigDecimal innerField02;
// ...getters, setters

我想按外部和内部字段对它们进行排序。现在,给定 List<OuterClass> list ,我可以轻松地对其进行排序,例如 field01与:

Collections.sort(list, Comparator.comparing(OuterClass::getField01));

但是我可以按 InnerClass.innerfield.innerfield01 排序吗? ?我试过了

Collections.sort(list, Comparator.comparing(OuterClass::InnerField::innerField01));

还有其他一些方法,但没有成功。也许我应该以某种方式使用 OuterClass::new ,但我不知道如何。

最佳答案

您可以使用Comparator.comparing(Function, Comparator)像这样:

Collections.sort(list, 
Comparator.comparing(OuterClass::getInnerField,
Comparator.comparingInt(InnerClass::getInnerField01)));

第一个参数是用于提取要排序的键的函数。在您的情况下:来自 OuterClassInnerfield

第二个参数是用于比较排序键的比较器。在您的情况下:InnerField 字段之一的 Comparator(上例中的 innerField01)。

关于使用比较器和内部类进行 Java 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51686468/

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