簡體   English   中英

使用Collections.sort對特定對象的ArrayList進行排序

[英]Using Collections.sort to sort an ArrayList of a specific object

因此,我看到了多個問題,都在解決與我類似的問題,但是我找不到與我的問題完全一樣的問題。

我有一個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)時收到錯誤消息。

錯誤是:

“綁定不匹配:Collections類型的通用方法sort(List<T> )不適用於參數( ArrayList<Contact> 。)推斷出的Contact類型不是綁定參數<T extends Comparable<? super T>>的有效替代品。 <T extends Comparable<? super T>>

有人知道這個問題是什么嗎? 就像我說的那樣,我通過某些對象的自定義列表(例如“ ContactDatabase<Contact> ”或類似內容)看到了類似的問題,但是我從未見過僅某個對象本身的問題。

謝謝!

如果實現Comparable<Contact>

這是我的快速測試代碼:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM