在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位随机不重复的数字编号相关推荐

  1. Scanner、Random和ArrayList的基本使用规则;猜数字的小游戏程序与随机不重复点名的程序

    介绍Scanner类.Random类.ArrayList类的基本使用,完成案例随机不重复点名的程序 Scanner Scanner类是一个文本扫描器类,对字符串文本进行扫描操作. Scanner主要作 ...

  2. 64位处理器_电脑系统32位好还是64位好 哪个快?

    1.运算速度不同.电脑CPU运算使用的是二进位制,O和1,一个O或一个1叫一位,8个位组成一个字节,2个字节组成一个标准汉字,处理的位数越高,表明其运算速度越快.通常我们说的64位32位是指的处理器( ...

  3. 64位处理器_电脑操作系统的32位和64位有什么区别

    想买个新电脑,不知道买 64 位还是 32 位?买了一套视频剪辑软件,发现电脑根本安装不了?这些到底是为什么? 对于 Windows7 及以上版本,我们能够很明显知道自己电脑操作系统是 64 位还是 ...

  4. 32位dll转64位工具_如何在64位系统中运行32位或16位程序

    由于CPU和系统架构的更新,现行主流的Windows系统已经是64位.然而许多人还恋恋不舍的一些老游戏或老程序已经没有了更新.在64位的系统上运行这些程序,往往会出现运行故障.如何才能解决这个烦心事? ...

  5. java 千位分隔_金额以千位分隔 可以使用DecimalFormat类来实现

    分组分隔符通常用于千位,但是在某些国家/地区中它用于分隔万位.分组大小是分组字符之间的固定数字位数,例如 100,000,000 是 3,而 1,0000,0000 则是 4.如果使用具有多个分组字符 ...

  6. Java生成png文件字体不清晰_前端生成pdf清晰度不高,模糊,字体放大,自定义字体,加粗样式...

    前阵子我做了个开源项目--在线编辑简历的小工具(http://www.deartami.com),需要将html页面转换成pdf文件并下载,遇到的一些坑,跟大家分享一下. 清晰度低 开始的思路是这样的 ...

  7. python列表转为一个数字_关于python:将整数列表转换为一个数字?

    我有一个整数列表,我想将其转换为一个数字,例如: numList = [1, 2, 3] num = magic(numList) print num, type(num) >>> ...

  8. python3提取字符串中的数字_如何在Python中从字符串中提取数字?

    14 回复 | 直到 1 年前 1 430 3 年前 如果只想提取正整数,请尝试以下操作: >>> str = "h3110 23 cat 444.4 rabbit 11 ...

  9. java随机一个数字和字母_java怎么实现随机4个带有数字和字母的验证码?

    展开全部 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Bu ...

最新文章

  1. linux sntp 代码,C语言window(linux)平台的SNTP实现
  2. 图片提取文字功能很神奇?Java几行代码搞定它!
  3. Smarty3 配置
  4. linux信号掩码线程,20.10 信号掩码(阻塞信号传递)
  5. 理解云计算备份与灾难恢复
  6. 用jQuery监听浏览器窗口的变化
  7. Mac下gradle简介与安装
  8. nginx问题一则:nginx路径匹配特殊处理及增加cookie等二三事
  9. maven五:查找jar包坐标,选择jar包版本
  10. python数据分析之(3)pandas
  11. android开题报告模板下载,毕业设计开题报告模板
  12. 计算机搜不到连接打印机主机,电脑搜索不到局域网打印机怎么办
  13. ubuntu安装原生迅雷,让下载成为简单
  14. 纯真ip java_利用纯真IP数据库,通过IP查地址[JAVA]
  15. 精彩博文收集目录索引
  16. linux va list,vsprintf函数以及va_list使用详解
  17. swiper 上滑触发_在绝地求生加入滑铲等战术动作会怎么样?你们想过吗?
  18. 8xmax升级鸿蒙,配置设计各种寒酸:Redmi10X开箱
  19. 课得软件丨纵观全球程序员税后年收入,中国排在第几?
  20. 关于组队学习的一点想法

热门文章

  1. 格杰仁波切:修佛根本在修心…
  2. Ambarella SDK build 步骤解析
  3. 以实例分析 IGP中更新源检测失败丢弃路由更新包
  4. 关系网络lbs的应用_冒泡网王江:熟人关系将成LBS最重要商业模式
  5. 如何在面试中介绍自己的项目经验(作者原创版)
  6. 数据统计平台设计与实现
  7. Typora设置标题自动标号
  8. 蔡徐坤一条微博转发过亿 幕后推手被判刑五年
  9. 选择器权重及字体属性
  10. html相对定位 不占位置,CSS position 相对定位和绝对定位