菜鸟,集合问题,求大神帮忙

lxy1420 2016-10-04 10:26:24
public void printScore(){
int mingCI =1;
for (Student stu : ts) {
System.out.println("第"+mingCI+"名;"+stu);
mingCI++;
}
}

ts是存放学生的TreeSet集合,就是想给学生按成绩排序;
但是结果是这样的
第1名;王3;成绩:100
第2名;王4;成绩:100
第3名;王2;成绩:80
第4名;王1;成绩:60

我想知道怎么把成绩相同的排成并列名次呢?
求大神解答
...全文
90 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangweihan01 2016-10-04
  • 打赏
  • 举报
回复
TreeSet<Student> ts = new TreeSet<Student>();
		ts.add(new Student("王3" , 100));
		ts.add(new Student("王4" , 100));
		ts.add(new Student("王2" , 80));
		ts.add(new Student("王1" , 60));
		List<Student> list = new ArrayList<>();
		list.addAll(ts);
		int mingCI = 0;
		for(int i = 0; i < list.size(); i++) {
			//如果不是第一个且上一名成绩和当前的相等时
			mingCI++;
			if(i != 0 && i != 0 && list.get(i - 1).score == list.get(i).score) {
				mingCI--;
				System.out.println("并列第" + mingCI + "名;" + list.get(i));
			} else {
				System.out.println("第" + mingCI + "名;" + list.get(i));
			}
		}
房东い先生 2016-10-04
  • 打赏
  • 举报
回复
在循环里面,加个if判断就好啦。如果不相等再jiajia++
lxy1420 2016-10-04
  • 打赏
  • 举报
回复
谢谢

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧