gpt4 book ai didi

java - 对未知类型的数组列表进行排序,如果对象不可比较则抛出异常

转载 作者:行者123 更新时间:2023-12-01 23:29:58 25 4
gpt4 key购买 nike

这是我的带有排序方法的测试类:

public class Main {
public static void main(final String[] args) {
ArrayList<Person> people = new ArrayList<Person>();

Person person1 = new Person("Jonas", 36);
Person person2 = new Person("Petras", 16);

people.add(person1);
people.add(person2);

ArrayList<Integer> ints = new ArrayList<Integer>();
ints.add(6);
ints.add(5);

ints = Main.sortAscending(ints);

System.out.println(ints);
}

public static <T extends Comparable<? super T>> ArrayList<T> sortAscending(
final ArrayList<T> list) {
Collections.sort(list);
return list;
}
}

只要我传入基本类型列表:字符串、整数等,它就可以正常工作。但是,当我尝试传入对象列表时,它不起作用。

这是我的类(class):

public class Person {
final String name;
final int age;

public Person(final String name, final int age) {
this.name = name;
this.age = age;
}

@Override
public String toString() {
return String.format("{name=%s, age=%d}", name, age);
}
}

class AgeComparator implements Comparator<Person> {
@Override
public int compare(final Person person1, final Person person2) {
return person1.age < person2.age ? -1 : person1.age == person2.age ? 0 : 1;
}
}
  1. 如何使我的方法 sortAscending 与我的类一起使用?
  2. 如何引发我传入的对象未实现比较方法的异常?

最佳答案

将比较器的实例发送到 sort():

Collections.sort(list, new AgeComparator());

关于java - 对未知类型的数组列表进行排序,如果对象不可比较则抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19480759/

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