黑马程序员技术交流社区

标题: 有意思的作业题,求大神更完美的答案 [打印本页]

作者: liuchenguangqnm    时间: 2016-4-19 23:22
标题: 有意思的作业题,求大神更完美的答案
1.分析以下需求,并用代码实现:
    (1)生成10个1至100之间的随机整数(不能重复),存入一个List集合(可以先不适用泛型,泛型明天讲)
    (2)编写方法对List集合进行排序,禁用Collections.sort方法和TreeSet
    (2)然后利用迭代器遍历集合元素并输出
    (3)如:15 18 20 40 46 60 65 70 75 91

   
package test1;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Random;

/*
* 思路:
* 一、新建一个List容器
* 一、new Random(long L)类的一个对象
* 二、构建十次循环,依次用Random类的实例对象获取对应随机整数,采用contains方法排重
* 三、将符合排重要求的数字放入容器中,随机数若不符合排重,就将循环计数器减一再来一次
* 四、通过选择排序或者冒泡排序对List元素进行排序
* 五、遍历并输出
*/

public class Test {

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();  //新建一个list容器
        Random r = new Random();                        //新建一个随机数对象

        for (int i = 0; i < 10; i++) {                  //构建for循环,十次
            Integer in = r.nextInt(100) + 1;            //手动装箱生成的随机数
            if (!list.contains(in))                     //判断,如果list容器中不包含这个整数
                list.add(in);                           //将这个整数加入容器中
            else                                        //否则
                i--;                                    //i自减1,再来一次循环随机数
        }

        selectSort(list);                               //调用选择循环封装

        ListIterator<Integer> it = list.listIterator(); //生成迭代器

        while (it.hasNext())                            //迭代器判断是否有下一个对象
            System.out.print(it.next() + " ");          //输出这个对象
    }

    public static void selectSort(List<Integer> list) { //选择循环封装,参数为list容器
        for (int i = 0; i < (list.size() - 1); i++) {   //外部循环,上限为容器对象数减一
            for (int j = i + 1; j < list.size(); j++) { //内部循环,上限为容器对象数
                if (list.get(i) > list.get(j)) {        //选择排序:分别用第"0"至"list.size()-1"位数和其他数比较
                    Integer temp = list.get(i);
                    list.set(i, list.get(j));           //如果相比较的两个数序列不正确,给予调换
                    list.set(j, temp);
                }
            }
        }
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2