java中的sort方法排序问题
例如Collections.sort(l1)//l1是LinkedList对象就问下,它是不是要去调用Camparaable接口中的compareTo方法才能进行排序...
例如Collections.sort(l1)//l1是LinkedList对象
就问下,它是不是要去调用Camparaable接口中的compareTo方法才能进行排序 展开
就问下,它是不是要去调用Camparaable接口中的compareTo方法才能进行排序 展开
4个回答
展开全部
这个是看你的业务的,给你个例子,你自己对照下
List data = new ArrayList();
data.add(1);
data.add(3);
data.add(2);
//默认的,升序
Collections.sort(data);
System.out.println(data);
// 实现了compareTo方法,实现降序
Collections.sort(data, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(data);
List data = new ArrayList();
data.add(1);
data.add(3);
data.add(2);
//默认的,升序
Collections.sort(data);
System.out.println(data);
// 实现了compareTo方法,实现降序
Collections.sort(data, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o2 - o1;
}
});
System.out.println(data);
更多追问追答
追问
哦,意思是都得调用sort()方法,但是需要换其他排序时就重写这个方法?
追答
1.jdk里面提供的一般都是最基本,最简单的方法,他不可能针对所有的需求都提供一个方法,
2.但是需要换其他排序时就重写这个方法?
你自己开发个方法做排序也行,只是jdk里提供的Collections.sort()的接口,你用他会方便点
展开全部
如果你的LinkedList里边放的是一般简单类型的对象无所谓,如果放的是自己定义的对象的话必须重写compareTo方法,否则会按照对象的hashcode乱排序
追问
嗯,谢谢,看了你们的,我也知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的,所以你要实现Cmmparable接口 重写compare To方法,不然就会出现异常 异常错误是类型无法转换,没有实现Commparable接口
追问
嗯,谢谢,看了你们的,我也知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询