最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

/**
*
*/
public class RandomNumberGenerator {

/**
* 這是典型的隨機洗牌算法。
* 流程是從備選數(shù)組中選擇一個放入目標數(shù)組中,將選取的數(shù)組從備選數(shù)組移除(放至最后,并縮小選擇區(qū)域)
* 算法時間復雜度O(n)
* @return 隨機8為不重復數(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];
//默認數(shù)組中可以選擇的部分長度
int canBeUsed = 10;
//填充目標數(shù)組
for (int i = 0; i < nums.length; i++) {
//將隨機選取的數(shù)字存入目標數(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());
}
}
}

相關文章

  • 在logback.xml中自定義動態(tài)屬性的方法

    在logback.xml中自定義動態(tài)屬性的方法

    這篇文章主要介紹了在logback.xml中自定義動態(tài)屬性的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • Java黑科技之通過Google Java Style 文件配置IDEA和Ecplise代碼風格

    Java黑科技之通過Google Java Style 文件配置IDEA和Ecplise代碼風格

    在日常開發(fā)中,多人團隊協(xié)作開發(fā)一個項目是很常見的,特別是大公司,這就會涉及到多人在一個工程上開發(fā)代碼.無規(guī)矩不成方圓,一個好的代碼風格,更加有利于團隊協(xié)作,減少代碼沖突,提高代碼可閱讀性,美觀性.本文就帶著大家仔細研究這個黑科技 ,需要的朋友可以參考下
    2021-05-05
  • Spring Boot啟動時調(diào)用自己的非web邏輯

    Spring Boot啟動時調(diào)用自己的非web邏輯

    在spring Boot中,有些代碼是WEB功能,例如API等,但是有些邏輯是非WEB,啟動時就要調(diào)用并持續(xù)運行的,該如何加載自己的非WEB邏輯呢,下面通過實例代碼給大家講解,一起看看吧
    2017-07-07
  • Java多線程通訊之wait,notify的區(qū)別詳解

    Java多線程通訊之wait,notify的區(qū)別詳解

    這篇文章主要介紹了Java多線程通訊之wait,notify的區(qū)別詳解,非常不錯,具有一定的參考借鑒借鑒價值,需要的朋友可以參考下
    2018-07-07
  • 使用Java編寫一個好用的解析配置工具類

    使用Java編寫一個好用的解析配置工具類

    這篇文章主要為大家詳細介紹了如何使用Java編寫一個好用的解析配置工具類,支持解析格式有properties,yaml和yml,感興趣的可以了解下
    2024-11-11
  • Java Swing GroupLayout分組布局的實現(xiàn)代碼

    Java Swing GroupLayout分組布局的實現(xiàn)代碼

    這篇文章主要介紹了Java Swing GroupLayout分組布局的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • ZooKeeper Java API編程實例分析

    ZooKeeper Java API編程實例分析

    本文主要通過實例給大家詳細分析了ZooKeeper用JAVA實現(xiàn)API編程的知識要點。
    2017-11-11
  • JAVA把結果保留兩位小數(shù)的3種方法舉例

    JAVA把結果保留兩位小數(shù)的3種方法舉例

    在寫程序的時候,有時候可能需要設置小數(shù)的位數(shù),所以下面這篇文章主要給大家介紹了關于JAVA把結果保留兩位小數(shù)的3種方法,文章通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • SpringBoot與docker的結合的示例

    SpringBoot與docker的結合的示例

    本篇文章主要介紹了SpringBoot與docker的結合的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • 詳解Spring boot上配置與使用mybatis plus

    詳解Spring boot上配置與使用mybatis plus

    這篇文章主要介紹了詳解Spring boot上配置與使用mybatis plus,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論

长武县| 南澳县| 南召县| 郧西县| 云霄县| 紫阳县| 清水县| 疏附县| 白沙| 社会| 延边| 洪湖市| 东至县| 阳原县| 德令哈市| 新绛县| 中西区| 田阳县| 呼玛县| 宾川县| 竹山县| 合作市| 新津县| 鸡东县| 乐至县| 合阳县| 南丰县| 繁峙县| 宿松县| 郯城县| 东明县| 班玛县| 澎湖县| 福清市| 莱州市| 西林县| 彝良县| 手游| 庆安县| 桐庐县| 崇义县|