随机生成十个不重复的整数有许多方法,这里我只写出两种。
第一种(Set):
先上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14import java.util.HashSet; import java.util.Set; public class Demo01 { public static void main(String[] args) { Set set = new HashSet(); while (set.size()<10){ int num = (int)(Math.random()*20)-1; set.add(num); } System.out.println(set); } }
在看解析:Set集合中不允许有重复的元素,当添加相同的元素时,因为Set集合的元素时唯一的,所以会覆盖之前的相同元素,set.size()方法能定义获取集合长度,也就能判断你所需要生成整数的个数。
第二种(ArrayList):
先看代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18package Demo01; import java.util.ArrayList; import java.util.List; public class Demo03 { public static void main(String[] args) { List list = new ArrayList(); while (list.size()<10) { int num = (int)(Math.random()*21)-1; if(!list.contains(num)){ //如果list集合里没有这个整数,则添加 list.add(num); } } System.out.println(list); } }
实现List接口的集合类中的元素是有序的,且允许重复。
List集合中的元素都对应一个整数型的序号记载其在集合中的位置,可以根据序号存取集合中的匀元素。
因为List没有方法帮我们去移除重复的元素,所以,我们添加元素进集合的时候就需要判断它是否存在,所以利用contains方法判断集合里有没有这个元素。
随机生成一个数的方法介绍
第一种(Math.random):
Math.random生成的是一串小数,如果我们需要的是整数就要转换成整型。
1
2
3
4
5
6public static void main(String[] args) { double i = Math.random(); System.out.println(i); int i1 = (int)(i*11)-1; //(i*11)-1表示生成0-10的一个整数 System.out.println(i1); }
Math是静态函数,所以我们可以直接调用它的方法。
第一种(Random):
1.Random(); 创建一个新的随机数生成器
2.Random(long seed); 使用单个 long 种子创建一个新随机数生成器
如果用相同的种子创建两个Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列
1
2
3
4
5
6
7public static void main(String[] args) { Random random = new Random(); //Random不是静态类,故此需要创建一个对象来调用它的方法。 for (int i = 0; i <20 ; i++) { int num = random.nextInt(10); //生成0-10却不包含十的整数。 System.out.print(num); System.out.print("t"); }
Random需要创建对象来调用它的方法,它生成的是整数还是小数,由nextInt,nextDouble决定
由程序结果可以得知,我们java创造随机数时,随机数存在重复且为的情况,而且都没有边界值,故此我们需要根据程序的需求来改变随机数的生成范围和数量。
最后
以上就是自信导师最近收集整理的关于JAVA随机生成十个不重复的整数(Arraylist,Set)的全部内容,更多相关JAVA随机生成十个不重复内容请搜索靠谱客的其他文章。
发表评论 取消回复