【发布时间】:2016-08-04 22:11:54
【问题描述】:
我有一个学生班。该类有String name、int studentId 和int studentScore。我想根据studentcore比较ArrayList<Student> students的学生。这意味着如果“学生 1”和“学生 2”的学生分数相同,那么他们的排名将相同。我有一个设置排名的功能。但我不确定如何比较数组列表中的所有内容。
当我搜索比较 int 值时,我得到了结果:
How to properly compare two Integers in Java?
我认为最好的解决方案是使用比较器类函数。但我不确定如何做到这一点,因为我不确定比较器类的能力。我想到了循环让玩家通过该循环然后再次循环并进行比较。但这似乎不是一个好的解决方案。
我想要这个结果:
假设包含(name,studentscore)的学生数组是:
(kim, 12), (werder, 20), (ben, 32), (sara, 12)
我希望学生的排名是(如果 ASC 顺序):
kim: rank = 1
werder: 2
ben: 3
sara: 1
【问题讨论】:
-
你想达到什么目的?按分数排序,还是按分数排序?请发布一个简单的输入示例、期望的结果以及到目前为止您尝试了什么。
-
这种情况下会返回什么,是升序的第一个分数吗?
-
@SashaSalauyou 我已经更新了我的问题。希望它能提供更好的清晰度
-
是的,现在很清楚了。请参阅我建议的答案,如何使用自定义比较器并按排序列表中的位置应用排名。
标签: java arraylist int comparator