gpt4 book ai didi

java - 数组列表中的排序

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

我正在尝试按降序对数组列表中存在的元素进行排序。但在实现过程中似乎存在一些问题。我只是java的初学者,正在尝试使用最简单的方法进行排序。

student temp = new student(user_name,given_name,family_name,tot_marks);

for(int j=0;j<list1.size()-1;j++)

{

for(int k=0;k<list1.size();k++)

{

student sort1 = list1.get(j);

student sort2 = list1.get(k);

if(sort1.tot_marks < sort2.tot_marks)

{

temp.user_name=sort1.user_name;

temp.family_name=sort1.family_name;

temp.given_name=sort1.given_name;

temp.tot_marks=sort1.tot_marks;

sort2.user_name=temp.user_name;

sort2.family_name=temp.family_name;

sort2.given_name=temp.given_name;

sort2.tot_marks=temp.tot_marks;

sort1.family_name=sort2.family_name;

sort1.given_name=sort2.given_name;

sort1.tot_marks=sort2.tot_marks;

list1.add(sort1); //Adding sorted elements to the arraylist.

}

//If marks are same, sort on the basis of username.

else if(sort1.tot_marks == sort2.tot_marks)

{

//Compare usernames whichever is greater.

{

temp.user_name=sort1.user_name;

temp.family_name=sort1.family_name;

temp.given_name=sort1.given_name;

temp.tot_marks=sort1.tot_marks;

sort2.user_name=temp.user_name;

sort2.family_name=temp.family_name;

sort2.given_name=temp.given_name;

sort2.tot_marks=temp.tot_marks;

sort1.family_name=sort2.family_name;

sort1.given_name=sort2.given_name;

sort1.given_name=sort2.given_name;

sort1.tot_marks=sort2.tot_marks;

list1.add(sort1);

}

}

}

}

//Print the sorted list.

for (int i=0;i<list1.size();i++)

{

student display = list1.get(i);

System.out.println(display.tot_marks+","+display.given_name+"
"+display.family_name);

}

最佳答案

你可以这样做:

Collections.sort(list1, new Comparator<student>() {

@Override
public int compare(student one, student another) {
if (one.tot_marks == another.tot_marks) {
return 0;
}
return one.tot_marks > another.tot_marks ? 1 : -1;
}
});

但是有一些建议:

  • student 这样的类名对于 Java 开发人员来说不太容易理解。尝试使用大写的驼峰式类名(在本例中为 Student)
  • 成员名称中的下划线在 java 中也不太好,请尝试驼峰式命名 (totMarks)。更好的是为其设置 geter 和 setter,而不是将其公开。 (getTotMarks(), setTotMarks(int))
  • 此外,在做像您这样的事情之前,请尝试进行一些研究!很有可能,有人在你之前写过它!

关于java - 数组列表中的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com