- package com.heima.list;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.ListIterator;
- import java.util.Random;
- public class Work {
- /**
- * @param args
- * (1)生成10个1至100之间的随机整数(不能重复),存入一个List集合(可以先不适用泛型,泛型明天讲)
- (2)编写方法对List集合进行排序,禁用Collections.sort方法和TreeSet
- (3)然后利用迭代器遍历集合元素并输出
- (4)如:15 18 20 40 46 60 65 70 75 91
- (1)1.创建随机数生成器
- Random r= new Random();
- 2.1到100之间
- int i = r.nextInt(100)+1;
- 3.生成十个并用集合存储
- List list = new Arraylist();
- for(int x = 0;x < 10;x++){
- list.add(r.nextInt(100)+1);
- }
- (2)1.排序先将list转换为数组,然后用选择排序/冒泡排序,然后将数组转换为集合
- object[] obj = list.toarray();
-
- (3)迭代器
- listite... lit = list.listite
- while(lit.hasnext()){
- int i = lit.next();
- syso(i);
- }
- */
- public static void main(String[] args) {
- Random r= new Random(); //创建随机数生成器
- List list = new ArrayList(); //创建集合
-
- while(list.size() < 10){ //将随机数存储到集合中,因为不知道要做多少次循环,所以用while
- int x = r.nextInt(100)+1;
- if(!list.contains(x)){
- list.add(x);
- }
- }
- /* for (int i = 0; list.size() < 10; i++) { //将随机数存储到集合中
- int x = r.nextInt(100)+1;
- if(!list.contains(x)){
- list.add(x);
- }
- System.out.print(i); //看看是否出现了重复的数字
- }*/
- Object[] obj = list.toArray(); //将集合转换为数组
- int[] arr = new int[obj.length]; //将obj数组转换为int数组
- for (int i = 0; i < obj.length; i++) {
- arr[i] = (int)obj[i];
- }
- for (int i = 0; i < arr.length-1; i++) { //选择排序
- for (int j = i+1; j < arr.length; j++) {
- if (arr[i]>arr[j]) {
- int temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- }
- }
- }
- /*for (int i = 0; i < arr.length; i++) { //打印一下
- System.out.print(arr[i]+" ");
- }*/
- list.clear(); //将原来的list清空
- for (int i = 0; i < arr.length; i++) { //将排序好的数组存储到list
- list.add(arr[i]);
- }
- //System.out.println(list);
- ListIterator lit = list.listIterator(); //创建迭代器
- while(lit.hasNext()){ //利用迭代器打印
- System.out.print(lit.next()+" ");
- }
- }
- }
复制代码
感觉代码很臃肿,怎么解决呢 |
|