欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

生成8位隨機(jī)不重復(fù)的數(shù)字編號的方法

 更新時間:2013年09月12日 16:10:11   作者:  
生成隨機(jī)不重復(fù)的數(shù)字編號在某些情況下也會用到,本文以生成8位隨機(jī)不重復(fù)的數(shù)字編號為例與大家分享下具體的實(shí)現(xiàn)過程,感興趣的朋友可以參考下
復(fù)制代碼 代碼如下:

package com.jjinfo.common.util;
import java.util.Arrays;
import java.util.Random;

/**
*
*/
public class RandomNumberGenerator {

/**
* 這是典型的隨機(jī)洗牌算法。
* 流程是從備選數(shù)組中選擇一個放入目標(biāo)數(shù)組中,將選取的數(shù)組從備選數(shù)組移除(放至最后,并縮小選擇區(qū)域)
* 算法時間復(fù)雜度O(n)
* @return 隨機(jī)8為不重復(fù)數(shù)組
*/
public static String generateNumber() {
String no="";
//初始化備選數(shù)組
int[] defaultNums = new int[10];
for (int i = 0; i < defaultNums.length; i++) {
defaultNums[i] = i;
}

Random random = new Random();
int[] nums = new int[LENGTH];
//默認(rèn)數(shù)組中可以選擇的部分長度
int canBeUsed = 10;
//填充目標(biāo)數(shù)組
for (int i = 0; i < nums.length; i++) {
//將隨機(jī)選取的數(shù)字存入目標(biāo)數(shù)組
int index = random.nextInt(canBeUsed);
nums[i] = defaultNums[index];
//將已用過的數(shù)字扔到備選數(shù)組最后,并減小可選區(qū)域
swap(index, canBeUsed - 1, defaultNums);
canBeUsed--;
}
if (nums.length>0) {
for (int i = 0; i < nums.length; 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 < 8; i++) {
num[i] = new Random().nextInt(10);
c = num[i];
for (int j = 0; j < i; j++) {
if (num[j] == c) {
i--;
break;
}
}
}
if (num.length>0) {
for (int i = 0; i < num.length; i++) {
no+=num[i];
}
}
return no;
}

public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
// System.out.println(generateNumber());
System.out.println(generateNumber2());
}
}
}

相關(guān)文章

  • SpringBoot整合定時任務(wù)之實(shí)現(xiàn)Scheduled注解的過程(一個注解全解決)

    SpringBoot整合定時任務(wù)之實(shí)現(xiàn)Scheduled注解的過程(一個注解全解決)

    這篇文章主要介紹了SpringBoot整合定時任務(wù)之實(shí)現(xiàn)Scheduled注解的過程(一個注解全解決),本文通過使用場景分析給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • javamail實(shí)現(xiàn)注冊激活郵件

    javamail實(shí)現(xiàn)注冊激活郵件

    這篇文章主要為大家詳細(xì)介紹了javamail實(shí)現(xiàn)注冊激活郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • IDEA中已配置阿里鏡像但maven無法下載jar包的問題及解決方法

    IDEA中已配置阿里鏡像但maven無法下載jar包的問題及解決方法

    這篇文章主要介紹了IDEA中已配置阿里鏡像但maven無法下載jar包的問題,本文給大家分享解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • 如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解

    如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解

    這篇文章主要介紹了如何使用Java?8中DateTimeFormatter類型轉(zhuǎn)換日期格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程

    詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程

    這篇文章主要介紹了詳解mybatis批量插入10萬條數(shù)據(jù)的優(yōu)化過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Spring Security添加二次認(rèn)證的項(xiàng)目實(shí)踐

    Spring Security添加二次認(rèn)證的項(xiàng)目實(shí)踐

    在用戶自動登錄后,可以通過對密碼進(jìn)行二次校驗(yàn)進(jìn)而確保用戶的真實(shí)性,本文就來介紹一下Spring Security添加二次認(rèn)證的項(xiàng)目實(shí)踐,具有一定的參考價值,感興趣的可以了解一下
    2023-12-12
  • spring消息轉(zhuǎn)換器使用詳解

    spring消息轉(zhuǎn)換器使用詳解

    這篇文章主要為大家詳細(xì)介紹了spring消息轉(zhuǎn)換器的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • MybatisPlus EntityWrapper如何自定義SQL

    MybatisPlus EntityWrapper如何自定義SQL

    這篇文章主要介紹了MybatisPlus EntityWrapper如何自定義SQL,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java線程的并發(fā)工具類實(shí)現(xiàn)原理解析

    Java線程的并發(fā)工具類實(shí)現(xiàn)原理解析

    本文給大家講解Java線程的并發(fā)工具類的一些知識,通過適用場景分析大數(shù)據(jù)量統(tǒng)計(jì)類任務(wù)的實(shí)現(xiàn)原理和封裝,多個示例代碼講解的非常詳細(xì),對java線程并發(fā)工具類相關(guān)知識感興趣的朋友一起學(xué)習(xí)下吧
    2021-06-06
  • Spring自定義注解配置簡單日志示例

    Spring自定義注解配置簡單日志示例

    這篇文章主要介紹了Spring自定義注解配置簡單日志示例,注解可以增強(qiáng)我們的java代碼,同時利用反射技術(shù)可以擴(kuò)充實(shí)現(xiàn)很多功能,它們被廣泛應(yīng)用于三大框架底層,需要的朋友可以參考下
    2023-05-05

最新評論