黑马程序员技术交流社区
标题:
关于在集合中使用各种排序的技巧讨论
[打印本页]
作者:
yinbolove576
时间:
2013-4-15 09:33
标题:
关于在集合中使用各种排序的技巧讨论
本帖最后由 yinbolove576 于 2013-4-16 13:37 编辑
/**
* 9、写一个集合,集合存放的是整形的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,
* 一个方法为从小到大的顺序排序。实现上述的代码。
*/
import java.util.*;
public class Test9 {
public static void main(String[] args)
{
//创建一个整型集合
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(3);
al.add(8);
al.add(7);
al.add(2);
al.add(5);
al.add(6);
ArrayHelp.maxToMinSort(al);
System.out.println("从大到小排序:"+al);
ArrayHelp.minToMaxSort(al);
System.out.println("从小到大排序:"+al);
}
}
//定义一个帮助类
class ArrayHelp
{
//定义从大到小排序方法
public static void maxToMinSort(ArrayList<Integer> al)
{
//Collections.reverse(al);//直接利用reverse可将获取自然的元素进行反转
//冒泡法
for(int x=0; x<al.size(); x++)
{
for(int y=x+1; y<al.size(); y++)
{
Integer a;//定义一个第三方整型变量a
if((al.get(x)).compareTo(al.get(y))<0)
{
a = al.get(x);
al.set(x,al.get(y));//将al.get(y)的值赋值给x
al.set(y, a);//将a赋值给y
}
}
}
}
public static void minToMaxSort(ArrayList<Integer> al)
{
//Collections.sort(al);
for(int x=0; x<al.size(); x++)
{
for(int y=x+1; y<al.size(); y++)
{
Integer a;
if((al.get(x)).compareTo(al.get(y))>0)
{
a = al.get(x);
al.set(x,al.get(y));
al.set(y, a);
}
}
}
}
}
楼主也是前几天刚做的这个基础测试,其中里面就有这么一个问题,当然楼主最先想到的肯定是直接利用API中封装好的关键字sort进行排序,但仔细看题后发现,如果单纯使用这种方法,从小到大、从大到小进行排序没问题,然而在主函数中将进行调用的函数体调换位置后发现,reverse所使用的方法排序有误,于是楼主又想到了细化排序方法,因此就直接想到了冒泡法,但一时不知道怎么在这里面直接调用,因此最后还是查阅了些资料才知道后来这种方法,因此小弟就想向大家探讨下这里除了用冒泡法、直接排序法等等的外,还有没有其余方法进行正常排序,欢迎大虾们踊跃交流思想哟~~~
作者:
yinbolove576
时间:
2013-4-15 12:21
囧....
沙发都没人抢啊,难不成大伙儿的都忙着去看视频了?
作者:
yinbolove576
时间:
2013-4-16 13:35
{:soso_e101:}悲催...只好关了...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2