黑马程序员 – 开始报名! -- 2013.1.16

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------


复习完正则表达式,终于要开始走黑马报名的流程了,好激动!学过一遍反过来思索,有些知识点已经忘记了,这几天把毕老师的重点视频看了一遍,希望入学能顺利!

2013年1月17日,终于把基础测试提交上去了,看过毕老师的视屏后,基础测试做起来不算吃力,加油!第六道测试题,让我花了最多的时间,还好最终发现问题所在:交换数组的两个位置,传递参数时要传数组,可能当时做晕了,好半天都没有发现,在这里记一下。

 第六题:写一个集合,集合存放的是整型的数据。写一个帮助类,帮组类中有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序。实现上述的代码。

下面是我的代码,望老师,大家指正:

public classTest9 {

    public static void main(String[] args) {

       //定义一个集合ArrayList,并添加整型数据

       List<Integer>al = newArrayList<Integer>();

       al.add(5);

       al.add(1);

       al.add(8);

       al.add(5);

       al.add(7);

       System.out.println("排序前:" + al);

      

       //升序排序

       al= SortUtils.upSort(al);

       System.out.println("升序排序后" + al);

       //降序排序

       al= SortUtils.downSort(al);

       System.out.println("降序排序后" + al);

    }

}

 

//定义一个工具类,有两个static方法,一个方法为从大到小的顺序排序,一个方法为从小到大的顺序排序

class SortUtils {

    //从小到大进行排序

    public static List<Integer>upSort(List<Integer> l) {

       Integer[]arr = getArr(l);

       //用冒泡法对数组进行升序排序

       for (int i = 0; i < arr.length-1; i++) {

           for (int j = 0; j < arr.length-i-1; j++) {

              if(arr[j]>arr[j+1]){

                  swap(arr,j,j+1);

              }

           }

       }

       return getNewList(arr);

    }

 

    //从大到小进行排序

    public static List<Integer>downSort(List<Integer> l) {

       Integer[]arr = getArr(l);

       //用选择排序法对数组进行降序排序

       for (int i = 0; i < arr.length-1; i++) {

           for (int j = i+1; j < arr.length; j++) {

              if(arr[i]<arr[j]){

                  swap(arr,i, j);

              }

           }

       }

       return getNewList(arr);

    }

    //返回排序后的新集合

    private static List<Integer>getNewList(Integer[] arr) {

       List<Integer>newl = newArrayList<Integer>();

       for (int i = 0; i < arr.length; i++) {

           newl.add(arr[i]);

       }

       return newl;

    }

 

    //List<Integer>集合转换成Integer数组

    private static Integer[]getArr(List<Integer> l) {

       Integer[]arr = newInteger[l.size()];

       Iterator<Integer>it = l.listIterator();

       int count = 0;

       while(it.hasNext()){

           arr[count]= it.next();

           count++;

       }

       return arr;

    }

    //交换数组arr两个位置上的数,一开始没有传arr,交换没成功,切记!

    private static void swap(Integer[] arr, int i, int j) {

       int temp = arr[i];

       arr[i]= arr[j];

       arr[j]= temp;

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值