gpt4 book ai didi

java - 如何根据 ChildType 对 java.util.ArrayList 进行排序?

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:58 25 4
gpt4 key购买 nike

public interface Human<T> extends Comparable<T>{ }

public class Men implements Human<Men>{
public Men(String firstName) {
this.firstName = firstName;
}
.....
}

public class Women implements Human<Women>{
public Women(String firstName) {
this.firstName = firstName;
}
.....
}

public class MainTest{

public static void main(String[] args) {

List<Human> engineers= new ArrayList<Human>();
engineers.add(new Men("A"));
engineers.add(new Women("A"));
engineers.add(new Men("C"));
engineers.add(new Men("E"));
engineers.add(new Men("Z"));
engineers.add(new Women("J"));
engineers.add(new Women("B"));
engineers.add(new Men("X"));
engineers.add(new Men("O"));
engineers.add(new Women("G"));

Collections.sort(engineers);

System.out.println(.... print the engineers array...)
}

Output

Men(A); Men(C); Men(E); Men(O); Men(X); Men(Z) Women(A); Women(B); Women(G); Women(AJ);

我排序的数组列表应该最初根据类型(男性或女性)排序,然后根据名字排序。我怎样才能最好地做到这一点?

我尝试了 Collections.sort(....)

无法得到想要的结果。

提前致谢

最佳答案

你可能是说

public interface Human extends Comparable<Human> {}

即:人类与其他人类具有可比性。既然如此,如果您想根据类型后跟名称来比较 Humans,那么您的界面 Human 需要表达这两个属性:

public interface Human extends Comparable<Human> {
enum Type { MAN, WOMAN }
Type getType();
String getName();
}

然后编写适当的 compareTo() 实现以同时考虑类型和名称,并使用 Collections.sort() 进行排序。

关于java - 如何根据 ChildType 对 java.util.ArrayList<ParentType> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592231/

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