簡體   English   中英

在數組列表中添加一定數量的隨機數,同時刪除重復項

[英]Add a set amount of random Numbers in an array list while removing duplicates

我似乎無法弄清楚為什么它會讓重復項通過。 我以為我的代碼暗示我不希望它有任何重復。 我現在使用我的代碼的方式會將7個隨機數添加到ArrayList中,這很好,但同時也會添加重復數,而不是。

import java.util.ArrayList;
import java.util.Random;

public class LotteryNumbers {
    private ArrayList<Integer> numbers;


    public LotteryNumbers() {

        this.drawNumbers();
    }

    public ArrayList<Integer> numbers() {

       Random randomizer = new Random(); 


        int i = 1;
        while (i <= 7) {

        if (!numbers.contains(randomizer.nextInt(39 + 1))); {

        numbers.add(randomizer.nextInt(39) + 1); 
        i++; 

        }

        }
        return this.numbers;
    }

    public void drawNumbers() {

        this.numbers = new ArrayList<Integer>();

    }


}

修正您的numbers()方法,如下所示

public ArrayList<Integer> numbers() {

    Random randomizer = new Random(); 

    int i = 1;
    int num;

    while (i <= 7) {

        num = randomizer.nextInt(39 + 1);

        if (!numbers.contains(num)); {
            numbers.add(num); 
            i++; 
        }

    }

    return this.numbers;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM