java生成不重复8位数字_如何生成8位随机不重复的数字编号
在Java中难免会使用到生成随机不重复的数字编号的时候,那么你知道如何生成8位随机不重复的数字编号吗?下面我们就跟爱站小编一起去看看吧。
package com.jjinfo.common.util;
import java.util.Arrays;
import java.util.Random;
/**
*
*/
public class RandomNumberGenerator {
/**
* 这是典型的随机洗牌算法。
* 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)
* 算法时间复杂度O(n)
* @return 随机8为不重复数组
*/
public static String generateNumber() {
String no="";
//初始化备选数组
int[] defaultNums = new int[10];
for (int i = 0; i
defaultNums[i] = i;
}
Random random = new Random();
int[] nums = new int[LENGTH];
//默认数组中可以选择的部分长度
int canBeUsed = 10;
//填充目标数组
for (int i = 0; i
//将随机选取的数字存入目标数组
int index = random.nextInt(canBeUsed);
nums[i] = defaultNums[index];
//将已用过的数字扔到备选数组最后,并减小可选区域
swap(index, canBeUsed - 1, defaultNums);
canBeUsed--;
}
if (nums.length>0) {
for (int i = 0; i
no+=nums[i];
}
}
return no;
}
private static final int LENGTH = 8;
private static void swap(int i, int j, int[] nums) {
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
public static String generateNumber2() {
String no="";
int num[]=new int[8];
int c=0;
for (int i = 0; i
num[i] = new Random().nextInt(10);
c = num[i];
for (int j = 0; j
if (num[j] == c) {
i--;
break;
}
}
}
if (num.length>0) {
for (int i = 0; i
no+=num[i];
}
}
return no;
}
public static void main(String[] args) {
for (int i = 0; i
// System.out.println(generateNumber());
System.out.println(generateNumber2());
}
}
}
上文就是小编介绍如何生成8位随机不重复的数字编号的内容, 如果你有遇到一样情况的话,不妨可以采取上面的方法步骤来进行解决,相信可以帮助到大家。
java生成不重复8位数字_如何生成8位随机不重复的数字编号相关推荐
- Scanner、Random和ArrayList的基本使用规则;猜数字的小游戏程序与随机不重复点名的程序
介绍Scanner类.Random类.ArrayList类的基本使用,完成案例随机不重复点名的程序 Scanner Scanner类是一个文本扫描器类,对字符串文本进行扫描操作. Scanner主要作 ...
- 64位处理器_电脑系统32位好还是64位好 哪个快?
1.运算速度不同.电脑CPU运算使用的是二进位制,O和1,一个O或一个1叫一位,8个位组成一个字节,2个字节组成一个标准汉字,处理的位数越高,表明其运算速度越快.通常我们说的64位32位是指的处理器( ...
- 64位处理器_电脑操作系统的32位和64位有什么区别
想买个新电脑,不知道买 64 位还是 32 位?买了一套视频剪辑软件,发现电脑根本安装不了?这些到底是为什么? 对于 Windows7 及以上版本,我们能够很明显知道自己电脑操作系统是 64 位还是 ...
- 32位dll转64位工具_如何在64位系统中运行32位或16位程序
由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...
- java 千位分隔_金额以千位分隔 可以使用DecimalFormat类来实现
分组分隔符通常用于千位,但是在某些国家/地区中它用于分隔万位.分组大小是分组字符之间的固定数字位数,例如 100,000,000 是 3,而 1,0000,0000 则是 4.如果使用具有多个分组字符 ...
- Java生成png文件字体不清晰_前端生成pdf清晰度不高,模糊,字体放大,自定义字体,加粗样式...
前阵子我做了个开源项目--在线编辑简历的小工具(http://www.deartami.com),需要将html页面转换成pdf文件并下载,遇到的一些坑,跟大家分享一下. 清晰度低 开始的思路是这样的 ...
- python列表转为一个数字_关于python:将整数列表转换为一个数字?
我有一个整数列表,我想将其转换为一个数字,例如: numList = [1, 2, 3] num = magic(numList) print num, type(num) >>> ...
- python3提取字符串中的数字_如何在Python中从字符串中提取数字?
14 回复 | 直到 1 年前 1 430 3 年前 如果只想提取正整数,请尝试以下操作: >>> str = "h3110 23 cat 444.4 rabbit 11 ...
- java随机一个数字和字母_java怎么实现随机4个带有数字和字母的验证码?
展开全部 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Bu ...
最新文章
- linux sntp 代码,C语言window(linux)平台的SNTP实现
- 图片提取文字功能很神奇?Java几行代码搞定它!
- Smarty3 配置
- linux信号掩码线程,20.10 信号掩码(阻塞信号传递)
- 理解云计算备份与灾难恢复
- 用jQuery监听浏览器窗口的变化
- Mac下gradle简介与安装
- nginx问题一则:nginx路径匹配特殊处理及增加cookie等二三事
- maven五:查找jar包坐标,选择jar包版本
- python数据分析之(3)pandas
- android开题报告模板下载,毕业设计开题报告模板
- 计算机搜不到连接打印机主机,电脑搜索不到局域网打印机怎么办
- ubuntu安装原生迅雷,让下载成为简单
- 纯真ip java_利用纯真IP数据库,通过IP查地址[JAVA]
- 精彩博文收集目录索引
- linux va list,vsprintf函数以及va_list使用详解
- swiper 上滑触发_在绝地求生加入滑铲等战术动作会怎么样?你们想过吗?
- 8xmax升级鸿蒙,配置设计各种寒酸:Redmi10X开箱
- 课得软件丨纵观全球程序员税后年收入,中国排在第几?
- 关于组队学习的一点想法