我有以下類。根據用戶輸入對java中的arrayList進行排序
class{
String name;
int marks;
};
現在我必須根據用戶輸入按字母順序(名稱)或降序(標記)排序對象。 如何爲此編寫比較器功能。 用戶將輸入'n'使用名稱排序,'m'使用標記排序。
我有以下類。根據用戶輸入對java中的arrayList進行排序
class{
String name;
int marks;
};
現在我必須根據用戶輸入按字母順序(名稱)或降序(標記)排序對象。 如何爲此編寫比較器功能。 用戶將輸入'n'使用名稱排序,'m'使用標記排序。
創建兩個Comparator<>
一個名另一個用於標記,並根據您的用戶輸入選擇一個,並執行以下。
Collections.sort(yourList, yourComparator);
見sort(List<T> list, Comparator<? super T> c))
public class YourFirstComparator implements Comparator<YourClass> {
@Override
public int compare(YourClass o1, YourClass o2) {
// your logic to return
// -1 if o1 is small, 1 is o1 is greater, 0 if both are equals
return yourValue
}
}
這些比較器的外觀如何? –
@SashaSalauyou看到更新的答案 –
我的意思是說,在OP類中有'name'和'makrs'變量,所以它們可能只是'Comparator.comparing(e - > e.name)'和'Comparator.comparing (e - > - e.marks)' –
你有什麼迄今所做? – Rehman
要麼將用戶輸入傳遞給比較器,要麼根據用戶輸入選擇一個比較器(可能是更好的方法)。 – Thomas
我是Java新手,剛剛學習了ArrayList,所以我不確定如何開始。 – Souvik