0
点赞
收藏
分享

微信扫一扫

编写一个程序,实现36选7,选出来的7个数不能重复(类似于选彩票,两种方法List和Set)

王老师说 2022-02-03 阅读 18

方法一: 用List集合实现36选7摇号
步骤如下:
(1)创建产生随机数的对象
(2)创建一个存储随机数的List集合。
(3)定义一个统计变量。从0开始。
(4)判断统计遍历是否小于7
是:先产生一个随机数,判断该随机数在集合中是否存在。
如果不存在:就添加,统计变量++。
如果存在:就不搭理它。
否:循环结束
(5)遍历集合。

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


public class Select_7_From_36 {

	public static void main(String[] args) {
//		创建产生随机数的对象
		Random r = new Random();
//		创建一个存储随机数的集合
		List<Integer> numbers = new ArrayList<Integer>();
//		定义一个统计变量。从0开始。
		int count = 0;
//		判断统计遍历是否小于7
		while (count < 7) {
//			先产生一个随机数,判断该随机数在集合中是否存在
			int number = r.nextInt(36) + 1;  //0~35+1=1~36
//			如果不存在:就添加,统计变量++。
			if (!numbers.contains(number)) {
				numbers.add(number);
				count++;
			}
		}
//		for (Integer i : numbers) {
//			System.out.print(i+"\t");
//		}
		System.out.println("36选7摇号如下:");
		numbers.forEach(i -> System.out.print(i + "\t"));

	}

}

方法二 用Set集合实现36选7摇号

步骤如下:
(1)创建随机数对象
(2)创建一个HashSet集合
(3)判断集合的长度是不是小于7
是:就创建一个随机数添加
否:不搭理它
(4)遍历HashSet集合


import java.util.HashSet;
import java.util.TreeSet;


public class Set_Select_7_From_36 {

	public static void main(String[] args) {
		HashSet<Integer> hs = new HashSet<>();

		while (hs.size() < 7) {
			int number = (int) (Math.random() * 36) + 1;
			hs.add(number);
		}

		System.out.println("36选7摇号如下:");
		hs.forEach(s -> System.out.print(s + "\t"));
	}

}

举报

相关推荐

0 条评论