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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 251855915 中级黑马   /  2016-4-19 22:58  /  490 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package com.heima.list;

  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.ListIterator;
  5. import java.util.Random;

  6. public class Work {

  7.         /**
  8.          * @param args
  9.          * (1)生成10个1至100之间的随机整数(不能重复),存入一个List集合(可以先不适用泛型,泛型明天讲)
  10.                 (2)编写方法对List集合进行排序,禁用Collections.sort方法和TreeSet
  11.                 (3)然后利用迭代器遍历集合元素并输出
  12.                 (4)如:15 18 20 40 46 60 65 70 75 91
  13.                 (1)1.创建随机数生成器
  14.                 Random r= new Random();
  15.                 2.1到100之间
  16.                 int i = r.nextInt(100)+1;
  17.                 3.生成十个并用集合存储
  18.                 List list = new Arraylist();
  19.                 for(int x = 0;x < 10;x++){
  20.                         list.add(r.nextInt(100)+1);
  21.                 }
  22.                 (2)1.排序先将list转换为数组,然后用选择排序/冒泡排序,然后将数组转换为集合
  23.                         object[] obj = list.toarray();
  24.                        
  25.                 (3)迭代器
  26.                 listite... lit = list.listite
  27.                 while(lit.hasnext()){
  28.                         int i = lit.next();
  29.                         syso(i);
  30.                 }
  31.          */
  32.         public static void main(String[] args) {
  33.                 Random r= new Random();                                //创建随机数生成器
  34.                 List list = new ArrayList();                //创建集合
  35.                
  36.                 while(list.size() < 10){                        //将随机数存储到集合中,因为不知道要做多少次循环,所以用while
  37.                         int x = r.nextInt(100)+1;
  38.                         if(!list.contains(x)){
  39.                                 list.add(x);
  40.                         }
  41.                 }
  42. /*                for (int i = 0; list.size() < 10; i++) {                //将随机数存储到集合中
  43.                         int x = r.nextInt(100)+1;
  44.                         if(!list.contains(x)){
  45.                                 list.add(x);
  46.                         }
  47.                         System.out.print(i);                                                //看看是否出现了重复的数字
  48.                 }*/
  49.                 Object[] obj = list.toArray();                //将集合转换为数组
  50.                 int[] arr = new int[obj.length];        //将obj数组转换为int数组
  51.                 for (int i = 0; i < obj.length; i++) {
  52.                         arr[i] = (int)obj[i];
  53.                 }
  54.                 for (int i = 0; i < arr.length-1; i++) {                                //选择排序
  55.                         for (int j = i+1; j < arr.length; j++) {
  56.                                 if (arr[i]>arr[j]) {
  57.                                         int temp = arr[i];
  58.                                         arr[i] = arr[j];
  59.                                         arr[j] = temp;
  60.                                 }
  61.                         }
  62.                 }
  63.                 /*for (int i = 0; i < arr.length; i++) {                                        //打印一下               
  64.                         System.out.print(arr[i]+" ");
  65.                 }*/
  66.                 list.clear();                                                                                                //将原来的list清空
  67.                 for (int i = 0; i < arr.length; i++) {                                                //将排序好的数组存储到list
  68.                         list.add(arr[i]);
  69.                 }
  70.                 //System.out.println(list);
  71.                 ListIterator lit = list.listIterator();                                                //创建迭代器
  72.                 while(lit.hasNext()){                                                                                //利用迭代器打印
  73.                         System.out.print(lit.next()+" ");                                               
  74.                 }
  75.         }

  76. }
复制代码

感觉代码很臃肿,怎么解决呢

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马