I think that the beginning of the code is right. The method containsNumber() is my weakness. I get 7 different lottery numbers (as I should and this is correct) when checking the code, but my checking program says that I fail when returning true/false value.
import java.util.ArrayList;
import java.util.Random;
public final class LotteryNumbers {
private ArrayList<Integer> numbers;
private Random random = new Random();
public LotteryNumbers() {
// We'll format a list for the numbers
this.numbers = new ArrayList<Integer>();
// Draw numbers as LotteryNumbers is created
this.drawNumbers();
}
public ArrayList<Integer> numbers() {
return this.numbers;
}
public void drawNumbers() {
while (numbers.size() <7){
int number = random.nextInt(39)+1;
if (containsNumber(number)==true){
this.numbers.add(number);
}}
// Write the number drawing here using the method containsNumber()
}
Here is my main problem and i get FAIL when checkin the code: "The method containsNumber() returns false, despite the drawn number was among the list of drawn numbers: 15"
public boolean containsNumber(int numberi) {
if (!this.numbers.contains(numberi)){
return true;
}
return false;
}
}
My main program:
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
LotteryNumbers lotteryNumbers = new LotteryNumbers();
ArrayList<Integer> numbers = lotteryNumbers.numbers();
System.out.println("Lottery numbers:");
for (int number : numbers) {
System.out.print(number + " ");
}
System.out.println("");
}
}