gpt4 book ai didi

java - 使用 Collections.sort 对特定对象的 ArrayList 进行排序

转载 作者:行者123 更新时间:2023-12-01 13:06:21 24 4
gpt4 key购买 nike

所以我看到了多个解决与我的问题类似的问题,但我找不到一个与我的问题完全相同的问题。

我有一个 Contact 对象的 ArrayList,我想使用 Collections.sort 对它们进行排序:

public void sortContactArrayList(){
ArrayList<Contact> newList = new ArrayList<Contact>();
Collections.sort(newList);
}

为了做到这一点,我做了 Contact实现Comparable<Contact> 。还有,我的compareTo方法如下:

@Override
public int compareTo(Contact otherContact) {
return this.getName().compareTo(otherContact.getName());
}

但是,当我调用 Collections.sort(newList); 时收到错误

错误是:

“绑定(bind)不匹配:Collections 类型的泛型方法 sort(List<T> ) 不适用于参数 ( ArrayList<Contact> )。推断类型 Contact 不是有界参数 <T extends Comparable<? super T>> 的有效替代品”

有人知道问题出在哪里吗?就像我说的,我见过类似的问题,涉及某些对象的自定义列表,例如“ContactDatabase<Contact>”或其他内容,但我从未见过仅涉及某个对象本身的此问题。

谢谢!

最佳答案

如果你实现了 Comparable<Contact> 应该没问题.

这是我的快速测试代码:

联系.java:

public class Contact implements Comparable<Contact> {

private String name;

public Contact(String name) {
this.name = name;
}

public String getName() {
return name;
}

@Override
public int compareTo(Contact otherContact) {
return this.getName().compareTo(otherContact.getName());
}
}

主要方法:

public static void main(String[] args) {

ArrayList<Contact> newList = new ArrayList<Contact>();
newList.add(new Contact("Midgar"));
newList.add(new Contact("David"));
Collections.sort(newList);
System.out.println(newList);
}

关于java - 使用 Collections.sort 对特定对象的 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23233490/

24 4 0