(1)生成10个1至100之间的随机整数(不能重复),存入一个List集合 (2)编写方法对List集合进行排序 (2)然后利用迭代器遍历集合元素并输出 (3)如:15 18 20 40 46

package com.first.demos;

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

public class Test{
	/*
	 * 分析以下需求,并用代码实现:
	(1)生成10个1至100之间的随机整数(不能重复),存入一个List集合
	(2)编写方法对List集合进行排序
	(2)然后利用迭代器遍历集合元素并输出
	(3)如:15 18 20 40 46 60 65 70 75 91
	 * */
	public static void main(String[] args) {
		List<Integer> list = new ArrayList<Integer>();
		
		//生成10个不同的随机数。可以使用Collection自带的contains()方法
		int ran = (int)(Math.random()*100) +1;
		list.add(0,ran);//初始化list
		for (int i = 0; i < 9; i++) {//正要添加的数
			ran = (int)(Math.random()*100) +1;
			for (int j = 0; j < i; j++) {//表示已添加的数
				if(ran == list.get(j)) {//如果重复,重新生成,并再次比较
					ran = (int)(Math.random()*100) +1;
					j = -1;//需要与j之前的,再次比较,因为上一个与j之前的不同,但是当前随机数不一定
				}
			}
			list.add(ran);
			
		}
		System.out.println(list);
		
		//升序排序
		change1(list);
		
		
		//迭代器遍历
		Iterator<Integer> it = list.iterator();
		while(it.hasNext()) {
			System.out.print(it.next()+" ");
		}
		
	}
	
	//升序排列1。可以使用Arrays工具类自带的sort()
	public static void change1(List<Integer> list) {
		int tmp;
		for (int i = 0; i < list.size() ; i++) {
			for (int j = i+1; j < list.size(); j++) {
				if(list.get(i) > list.get(j)) {
					tmp = list.get(j);
					list.add(j,list.get(i));
					list.remove(j+1);//将原本j位置的数删除(被顶到j+1位置了)
					list.add(i,tmp);
					list.remove(i+1);
				}
			}	
		}
		
	}
	
	
//	//升序排列2
//	public static void change2(List<Integer> list) {
//		Object[] obj = list.toArray();
//		Object tmp = 0;
//		for (int i = 0; i < obj.length ; i++) {
//			for (int j = i+1; j < obj.length; j++) {
//				if((int)obj[i] > (int)obj[j]) {//
//					tmp = obj[j];
//					obj[j] = obj[i];
//					obj[i] = tmp;
//				}
//			}	
//		}
//		
//		list.clear();
//		
//		for (int i = 0; i < obj.length; i++) {
//			list.add((Integer) obj[i]);
//		}
//			
//	}

}

ps:
作业记录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈年_H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值