Java中的随机数Random
时间:2022-06-07 09:22:30|栏目:JAVA代码|点击: 次
一个用于生成随机数的类
具体用法:
//创建随机数对象 Random random = new Random(); //随机产生一个int类型取值范围内的数字。 int num1 = random.nextInt(); System.out.println(num1); //产生一个[0-100]之间的随机数 int num2 = random.nextInt(101); System.out.println(num2);//不包括101
写一个不含重复数字的随机数组
第一种:
int[] num = new int[5];
boolean flag = true;
Random random = new Random();
for (int i = 0; i < num.length; i++) {
int a = random.nextInt(5);
for (int j = i - 1; j >= 0; j--) {//当i == 0 的时候这一步不执行
if (a == num[j]) {
flag = false;
}
}
if (flag) {
num[i] = a;
} else {
i--;
flag = true;
}
}
System.out.println(Arrays.toString(num));
第一种方法的改进:
public static void main(String[] args) {
int[] num = new int[5];
Random random = new Random();
int index = 0;
while (index < num.length) {
int a = random.nextInt(5);
if (contains(num, index, a)) { //把判断有没有变成了一个方法
num[index++] = a;
}
}
System.out.println(Arrays.toString(num));
}
public static boolean contains(int[] a, int index, int temp) {
for (int i = index - 1; i >= 0; i--) {
if (temp == a[i]) {
return false;
}
}
return true;
}
第二种:
不推荐这种方法,虽然使用了Arrays自带的方法 ,但是这个方法的除最后一个元素以外的元素都是排好序的
这种随机有点不严谨
public static void main(String[] args) {
int[] a = new int[5];
Random random = new Random();
int index = -1;
while(index < a.length -1){
int b = random.nextInt(5);
if(contains(a,b,index)){
a[++index] = b;
}
}
System.out.println(Arrays.toString(a));
}
public static boolean contains(int[] a , int b , int index){
if (index < 0){
return true;
}
Arrays.sort(a,0,index + 1);//下标为[0,index+1)的数组排序 不包含index+1
return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下标为[0,index+1)范围内是否包含b
}
栏 目:JAVA代码
下一篇:关于jd-gui启动报This program requires Java 1.8+的错误问题及解决方法
本文标题:Java中的随机数Random
本文地址:http://www.codeinn.net/misctech/204082.html


阅读排行
- 1Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 2Java Swing组件BoxLayout布局用法示例
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4java中-jar 与nohup的对比
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7解析SpringSecurity+JWT认证流程实现
- 8java读取excel文件的两种方法
- 9深入解析java虚拟机
- 10spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)




