gpt4 book ai didi

Java:按顺序比较三个不同的字段。像一个 SQL 数据库

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:00 27 4
gpt4 key购买 nike

例如,在“SQL I have a SELECT * FROM db ORDER by first, middle, last ASC”中,输出将按名字排序,然后是中间名,最后是姓氏,对吗?我怎样才能在 Java 中拥有具有相同输出的可比较函数?希望你明白我在这里的意思。谢谢。

我有以下示例;

public static final Comparator<Person> NameCompare = new Comparator<Person>()
{
public int compare(Person o1, Person o2) {
return o2.first().compareTo(o1.first()) == 0 ? o2.first().compareTo(o1.first()) : o2.middle().compareTo(o1.middle()) == 0 ? o2.middle().compareTo(o1.last()) : o2.property().compareTo(o1.last());
}
};

编辑:示例排序顺序:

  1. Abc Bcd Efg
  2. Abc Def Ghi
  3. Cde Fgh Ijk
  4. Cde Fgh Lmn
  5. 你好
  6. Zee Why Bee

最佳答案

如果您使用的是 Java 8,您可以:

Comparator<Person> comp = Comparator.comparing(Person::getFirst)
.thenComparing(Person::getMiddle)
.thenComparing(Person::getLast);

并对列表进行排序:

List<Person> people = ...;
people.sort(comp);

关于Java:按顺序比较三个不同的字段。像一个 SQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011537/

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