第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

JAVA無法獲取4位隨機(jī)數(shù)

JAVA無法獲取4位隨機(jī)數(shù)

慕姐8265434 2023-09-27 16:11:12
我對java真的很陌生。我需要創(chuàng)建一個方法來創(chuàng)建 4 位隨機(jī)數(shù),例如 0050、0100、9999。所以該數(shù)字的每個數(shù)字都有 0 到 9 的限制!這是我發(fā)現(xiàn)的:package randomNumber;import java.util.HashSet;import java.util.Random;import java.util.Set;public class RandomNumber {    public static Set<Integer> getRandom(Set<Integer> setInt){        setInt = new HashSet<Integer>();        for (int i = 0; i < 4; i++){            Random random = new Random();            i = random.nextInt(10);                 setInt.add(i);                  };        return setInt;    }    public static void main(String[] args) {        System.out.println(getRandom(null));    }}所以我不太明白為什么我必須將 getRandom 方法中的變量設(shè)置為“null”。System.out.println(getRandom()); 沒有成功。如果有人能向我解釋這一點(diǎn),我將不勝感激不管怎樣,我很高興在我多次運(yùn)行代碼之前沒有收到任何錯誤消息。我有 1 位數(shù)字,或 2 位數(shù)字,有時有 3 位數(shù)字,但似乎我永遠(yuǎn)不能有 4 位數(shù)字,而我在 for 循環(huán)中指出 i < 4。我無法將結(jié)果保持為 4數(shù)字。為什么?我迷路了!如果有人可以幫助我,我將不勝感激。我還想知道我是否使用了正確的方法,因?yàn)槲倚枰粋€四位數(shù)字,并且我使用了一個哈希集,它理想地為我提供了一個 4 元素表。除了哈希集還有其他方法嗎?
查看完整描述

5 回答

?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個贊

Set沒有順序,也不包含重復(fù)項(xiàng)——就像數(shù)學(xué)一樣。Random是您在程序中實(shí)例化一次的東西,絕對不是在循環(huán)中間實(shí)例化的東西。


如果你想要一個 0 到 9999 之間的隨機(jī)數(shù),那么只需生成一個隨機(jī)數(shù)即可。然后,您可以在打印或轉(zhuǎn)換為字符串時添加缺失的零:


private static Random rnd=new Random();

public static int getRandom(){

  return rnd.nextInt(10000);

}

public static void main(String args[]){

  int r=getRandom();

  System.out.println("As number: "+r);

  System.out.printf("As 4-digit code, just printing: %04d\n",r);

  String s=String.format("%04d",r);

  System.out.println("As 4-digit code, in separate string: "+s);

}

測試: https: //ideone.com/6Rmc8j(雖然Ideone緩存了一個4位數(shù)字,運(yùn)氣不好)。



查看完整回答
反對 回復(fù) 2023-09-27
?
蕭十郎

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個贊

這里有很多東西需要解開,但對于實(shí)際問題:

您會得到不同的結(jié)果,因?yàn)榧显谠O(shè)計(jì)上接受唯一的值。有時您會從隨機(jī)中獲得相同的整數(shù),因此它不會被添加到集合中,因?yàn)樗呀?jīng)存在了。

你需要一個ArrayList或類似的東西。


查看完整回答
反對 回復(fù) 2023-09-27
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個贊

首先你的問題。


的參數(shù)getRandom(Set<Integer> setInt)未被使用。無論如何,您都會在函數(shù)內(nèi)創(chuàng)建一個新集合。這就是為什么傳遞null仍然有效。那么不妨改成:


public static Set<Integer> getRandom(){


    Set<Integer> setInt = new HashSet<>();

你的循環(huán)只是說你想循環(huán) 4 次。如果碰巧生成相同的數(shù)字,該集合將省略重復(fù)的數(shù)字,因此您最終可能會得到更少的數(shù)字。


你真正需要的是一個列表,這樣重復(fù)項(xiàng)就不會被消除。


public static List<Integer> getRandom(){


  List<Integer> list = new ArrayList<>(4);

另外,你應(yīng)該把它放在Random外面。如果每次在循環(huán)內(nèi)創(chuàng)建一個新序列,它將丟失其偽隨機(jī)序列。


最后,如果您決定使用 Java 8,還有更好的方法。


Random random = new Random();


return Stream.generate(() -> random.nextInt(10))

             .limit(4)

             .collect(Collectors.toList());


查看完整回答
反對 回復(fù) 2023-09-27
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個贊

我需要創(chuàng)建一個方法來創(chuàng)建 4 位隨機(jī)數(shù),例如 0050、0100、9999

因此,這些值都不可能,因?yàn)槭褂?Set 將防止添加重復(fù)的數(shù)字。在 10 個數(shù)字中你得到 4 個唯一數(shù)字的機(jī)會相當(dāng)小

不太明白為什么我必須將 getRandom 方法中的變量設(shè)置為“null”。System.out.println(getRandom()); 沒有成功

您有該方法的參數(shù),但您立即覆蓋它。如果您希望第二種方式起作用,請刪除方法參數(shù)

除了哈希集還有其他方法嗎?

使用它有什么要求嗎?如果沒有,List及其子類將是更好的選擇


查看完整回答
反對 回復(fù) 2023-09-27
?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個贊

您不應(yīng)該將Set當(dāng)作 的參數(shù)getRandom。

在方法中創(chuàng)建集合getRandom并返回它。


import java.util.HashSet;

import java.util.Random;

import java.util.Set;


public class RandomNumber {


    public static Set<Integer> getRandom(){


        HashSet<Integer> setInt = new HashSet<>();

        Random random = new Random();

        for (int i = 0; i < 4; i++){

            int n = random.nextInt(10);

            setInt.add(n);

        }

        return setInt;

    }


    public static void main(String[] args) {

        System.out.println(getRandom());

    }

}


查看完整回答
反對 回復(fù) 2023-09-27
  • 5 回答
  • 0 關(guān)注
  • 235 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號