博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java随机生成n个不相同的整数
阅读量:6801 次
发布时间:2019-06-26

本文共 1434 字,大约阅读时间需要 4 分钟。

使用java的 java.util.Random

import java.util.Random;

/**

* 随机生成n个不同的数
*
* @author 张俊峰
*
*/
public class ArrayRandom {

/**

* 随机生成n个不同的数
*
* @param amount
* 需要的数量
* @param max
* 最大值(不含),例:max为100,则100不能取到,范围为0~99;
* @return 数组
*/
public static int[] random(int amount, int max) {

if (amount > max) { // 需要数字总数必须小于数的最大值,以免死循环!

throw new ArrayStoreException(
"The amount of array element must smallar than the maximum value !");
}
int[] array = new int[amount];
for (int i = 0; i < array.length; i++) {
array[i] = -1; // 初始化数组,避免后面比对时数组内不能含有0。
}
Random random = new Random();
int num;
amount -= 1; // 数组下标比数组长度小1
while (amount >= 0) {
num = random.nextInt(max);
if (exist(num, array, amount - 1)) {
continue;
}
array[amount] = num;
amount--;
}
return array;
}

/**

* 判断随机的数字是否存在数组中
*
* @param num
* 随机生成的数
* @param array
* 判断的数组
* @param need
* 还需要的个数
* @return 存在true,不存在false
*/
private static boolean exist(int num, int[] array, int need) {

for (int i = array.length - 1; i > need; i--) {// 大于need用于减少循环次数,提高效率。

if (num == array[i]) {
return true;
}
}
return false;
}

/**

* 随机生成一个数
*
* @param max
* 最大值(不含)
* @return 整型数
*/
public static int random(int max) {

return random(1, max)[0];

}
}
使用:

int[] arr = ArrayRandom.random(20, 100);

for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
---------------------
原文:https://blog.csdn.net/u013271384/article/details/51766300

转载于:https://www.cnblogs.com/jdbn/p/10089753.html

你可能感兴趣的文章
Linux搭建SVN服务器
查看>>
UML 之 数据流图(DFD)
查看>>
ReiserFS与EXT3的比较
查看>>
利用CSS3打造一组质感细腻丝滑的按钮
查看>>
hadoop中文官网
查看>>
phpQuery—基于jQuery的PHP实现(转)
查看>>
[.net 面向对象程序设计进阶] (11) 序列化(Serialization)(三) 通过接口 IXmlSerializable 实现XML序列化 及 通用XML类...
查看>>
codeforces 236A . Boy or Girl(串水问题)
查看>>
android消息推送
查看>>
java:如何让程序按要求自行重启?
查看>>
iOS:本地数据库sqlite的介绍
查看>>
python3 post方式上传文件。
查看>>
MVC 模型绑定
查看>>
android 时间对话框 TimePickerDialog简介
查看>>
href="javascript:void(0)"
查看>>
我的css释疑-float line-height inline-block vertical-align
查看>>
《Pro Android Graphics》读书笔记之第四节
查看>>
OC与Swift混编
查看>>
cxf webservice异步调用
查看>>
wampserver与 thinkphp 安装
查看>>