关于JAVA的Collections排序

例如有一个班级集合Arraylist,班级属性有人数(int)和班级名(String)排序,按班级人数排,人数一样,按班级名字排用Comparable,不要使用Compa... 例如有一个班级集合Arraylist,班级属性有人数(int)和班级名(String)

排序,按班级人数排,人数一样,按班级名字排
用Comparable,不要使用Comparator

下面是写到一半的代码
static ArrayList<Classes> c = new ArrayList<Classes>();
public void addClasses()
{
c.add(new Classes("Class 1",25));
c.add(new Classes("Class 2",24));
c.add(new Classes("Class 3",26));
c.add(new Classes("Class 4",30));
c.add(new Classes("班级4",25));
c.add(new Classes("Class 5",27));
c.add(new Classes("Class 6",25));
c.add(new Classes("Class 7",21));

Collections.sort(c);

}
人数排序已经实现了,关键是怎样继续实现人数一样时班级名排序
展开
 我来答
zhsq_bd
2008-09-13
知道答主
回答量:11
采纳率:0%
帮助的人:0
展开全部
关键是看你的comparable方法怎么写的,这个还不是你怎么写它怎么排;
试着来段
public boolean compareTo(Object obj){
Class c=(Class)obj;//要严密的话抓个异常。
if(this.count!=c.count){//也可以把人数和名字拼起来,感觉那样更有意思。
return this.count>c.count;
}else{
return this.name.compareTo(c.name);
}
}
pink629
2008-09-13 · TA获得超过236个赞
知道答主
回答量:133
采纳率:0%
帮助的人:181万
展开全部
班级名如果是String类型的就直接可以放到sort方法中比较了,因为String实现了字典排序,如果是我们自定义类型就要实现Comparable接口的compareTo方法了,自己按逻辑简单写一个就行了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
?>

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式