Reputation: 8068
I have looked in many places online and all seem to give me the same solution. So it's obvious that I have made some sort of silly mistake I cannot see. Can someone please point me in the right direction. Thanks a mill.
Here is my code:
import java.util.Arrays;
public class Solution {
public static void main(String[] args) {
int[] outcomes = {1, 2, 3, 4, 5, 6};
int count = 0;
for(int y = 1; y<=6; y++){
if(Arrays.asList(outcomes).contains(y)){
count++;
System.out.println("outcomes contains "+ y);
}
}
System.out.println(count);
}
The final output should be 6 but it is 0.
Upvotes: 4
Views: 457
Reputation: 3922
Two things should be corrected in your code:
After this changes code will look as follows:
public static void main(String[] args) {
Integer[] outcomes = {1, 2, 3, 4, 5, 6};
List outcomesList = Arrays.asList(outcomes);
int count = 0;
for(int y = 1; y<=6; y++){
if(outcomesList.contains(y)){
count++;
System.out.println("outcomes contains "+ y);
}
}
System.out.println(count);
}
Upvotes: 0
Reputation: 200168
Arrays.asList(int[])
returns a single-element list. The one element is the int[]
you have passed in.
If you change the declaration
int[] outcomes
to
Integer[] outcomes
you'll get the expected result.
Upvotes: 6