黑马程序员技术交流社区

标题: 每日练习题 [打印本页]

作者: 贺小梅    时间: 2015-11-30 23:25
标题: 每日练习题
集合练习题
/*
*编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,
*禁用collection.sort方法和treeSet),然后遍历集合输出
*/package com.itheima.test04;

import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
  //创建ArrayList集合对象
    ArrayList<Integer> al = new ArrayList<Integer>();
    //循环生成五个元素,存入ArrayList集合中
    for(int i = 0; i < 5 ; i++) {
        al.add((int)(Math.random() * 10) + 1);
    }
    //ArrayList的底层数据结构是数组,故考虑使用数组排序的方式:冒泡排序或比较排序
//冒泡排序法
//    for(int i = 0; i < al.size() - 1; i++) {
//        for (int j = 0; j < al.size()- 1 - i; j++) {
//            //get(int index)方法,返回指定位置上的元素
//            if(al.get(j) > al.get(j + 1)) {
//                int temp = al.get(j);
////set(int index,E element)方法,用指定的元素,替代此列表中指定位置上的元素
//                al.set(j, al.get(j + 1));
//                al.set(j + 1, temp);
//            }
//        }
//    }
//选择排序法
    for(int i = 0; i < al.size() - 1; i++) {
        for (int j = i + 1; j < al.size(); j++) {
            //get(int index)方法,返回指定位置上的元素
            if(al.get(i) > al.get(j)) {
                int temp = al.get(i);
//set(int index,E element)方法,用指定的元素,替代此列表中指定位置上的元素
                al.set(i, al.get(j));
                al.set(j, temp);
            }
        }
    }
//遍历集合中的元素,并打印在控制台中
   for (Integer t : al) {
    System.out.print(t + " ");
}
    }

}
每次在控制台中运行的结果是不一致的,因为集合中的元素是随机产生的,在控制台中出现的效果为:2 4 6 8 10
作者: Good_Man    时间: 2015-12-2 09:16
Math.random() * 10) + 1),,这个 是随机 生成 1-10之间的数么




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