A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马IT学员 中级黑马   /  2014-1-10 21:47  /  1490 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.itheima;

import java.util.ArrayList;
import java.util.List;

public class Test7 {

        /**
         编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序
         * (自定义排序算法,禁用Collections.sort方法和TreeSet),然后遍历集合输出。
         */
        public static void main(String[] args) {
                //创建一个存放产生随机数的集合
                List<Integer> NumberList=new ArrayList<Integer>();
               
                Random(NumberList);
               
                PrintControl(NumberList);
        }

       
        //把排序之后的数据输出到控制台
        public static void PrintControl(List<Integer> NumberList) {
               
                //把集合中的数据转换成数组,并对数组排序,之后添加到集合中
                Object[] number = Sort(NumberList);
                //清楚集合中所有的数据
                NumberList.clear();
                for (int i=0;i<number.length;i++) {
                        //把数组中的数据重新添加到集合中
                        NumberList.add((Integer) number[i]);
                }
                System.out.println();
                System.out.println("排序之后:");
                for (Integer i:NumberList) {
                        System.out.print(i+"\t");
                }
        }

       
        //排序
        public static Object[] Sort(List<Integer> NumberList) {
                //把集合转换成数组
                Object[] number=NumberList.toArray();
                //使用冒泡法对数组进行排序
                for (int i = 0; i < number.length; i++)
                {
                        for (int j = i+1; j < NumberList.size(); j++)
                        {
                                int change=0;
                                if((Integer)number[i]>(Integer)number[j])
                                {
                                        change=(Integer)number[j];
                                        number[j]=number[i];
                                        number[i]=change;
                                }
                        }
                }
                return number;
        }
       
       
        //产生随机数
        public static void Random(List<Integer> NumberList) {
                for (int i = 0; i < 5; i++) {
                       
                        //随机生成1到10的随机数
                        int random=(int)(Math.random()*10 + 1);
                       
                        //将随机数添加到集合中
                        NumberList.add(random);
                }
                System.out.println("排序之前:");
                for (Integer i:NumberList) {
                        System.out.print(i+"\t");
                }
        }

}

2 个回复

正序浏览
在ArrayList集合中可以直接比较两个角标的元素排序,这样我感觉省类存点
回复 使用道具 举报
在ArrayList集合
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马