JAVA数组怎么自动排序,不用冒泡

Teln_小凯 2012-04-24 09:51:18
我有一个父类对象数组 Shape[] shapes=new Shape[10];
这个父类里面存有10个子类,但是我要调用Arrays.sort()这个方法排序对象数组里面的面积怎么弄??

Arrays.sort(shapes) 貌似直接这样不可以额

求高手
...全文
265 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teln_小凯 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

請參考我的blog,自定義排序Comparator。
http://blog.csdn.net/iisgirl/article/details/7269833
[/Quote]

谢啦
avina2009 2012-04-24
  • 打赏
  • 举报
回复
我假设你的 Shape有个getArea方法 返回一个Double代表面积
Arrays.sort(shapes, new Comparator<Shape>() {
@Override
public int compare(Shape s1, Shape s2) {
return s1.getArea().compareTo(s2.getArea());
或者这样
double d = s1.getArea() - s2.getArea();
if(d > 0) {
return 1;
} else if (d < 0) {
return -1;
} else {
return 0;
}
}
});

Comparator只要重写一个 compare方法就行了,返回值大于0代表大于,返回0代表小于。
昨日凡阳 2012-04-24
  • 打赏
  • 举报
回复
請參考我的blog,自定義排序Comparator。
http://blog.csdn.net/iisgirl/article/details/7269833
Teln_小凯 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

意思是按面积排序吧
用Arrays.sort(Object[] arg0, Comparator<? super Object> arg1)
写一个Comparator就行了
[/Quote]

刚刚入门的 那个Comparator 不会写...
avina2009 2012-04-24
  • 打赏
  • 举报
回复
意思是按面积排序吧
用Arrays.sort(Object[] arg0, Comparator<? super Object> arg1)
写一个Comparator就行了
shixitong 2012-04-24
  • 打赏
  • 举报
回复
用LinkedList

58,454

社区成员

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

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