import java.util.*;
class student
{
int roll;
int marks;
student(int roll, int marks)
{
this.roll=roll;
this.marks=marks;
}
}
public class eList4
{
public static void main(String args[])
{
Scanner scann=new Scanner(System.in);
List <student> mylist= new ArrayList<student>();
int n=scann.nextInt();
while((n--)>0)
{
System.out.println(n+" enter student details:");
int roll=scann.nextInt();
int marks=scann.nextInt();
student temp=new student(roll, marks);
mylist.add(temp);
}
Collections.sort(mylist, new Comparator<student>() {
@Override
public int compare(student a, student b) {
int k=b.roll;
int kk=a.roll;
if(b.roll>a.roll)
{
return 1;
}
else
return 0;
}
});
System.out.println(mylist);
Iterator itr = mylist.iterator();
i=0;
while(itr.hasNext())
{
student temp=itr.next();
System.out.println(temp.roll +" "+temp.marks);
}
}
}
好吧,这给了我相同的结果,根本没有排序。
我如何根据roll no.s排序?
这给出了相同的结果。
好吧,这给了我相同的结果,根本就没有排序。
我如何根据roll no.s排序?
这给出了相同的结果。
答案 0 :(得分:0)
您没有正确比较学生班级的“roll”属性,请使用以下代码:
@Override
public int compare(student a, student b) {
return ((Integer)a.roll).compareTo(((Integer)b.roll));
}
我们无法使用compareTo()方法比较原始数据类型,因此将“roll”属性转换为Integer包装类。您的比较方法已准备好进行比较。
希望这有效!