我有以下类。根据用户输入对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