JoseHdez_2 JoseHdez_2 - 3 months ago 18
Java Question

Is value in ArrayList<Integer>? (Java)

In Java, I'm trying to know whether an

Integer
is in an
ArrayList<Integer>
.
I tried using this general solution, which warns that it doesn't work with arrays of primitives. That shouldn't be a problem, since
Integer
s aren't primitives (
int
s are).

ArrayList<Integer> ary = new ArrayList<Integer>();
ary.add(2);

System.out.println(String.format("%s", Arrays.asList(ary).contains(2)));


Returns
false
.
Any reason why?
Any help is appreciated, although the less verbose the better.

Answer

Any reason why it returns false?

Simply because Arrays.asList(ary) will return a List<ArrayList<Integer>> and you try to find if it contains an Integer which cannot work.

As remainder here is the Javadoc of Arrays.asList(ary)

public static List asList(T... a) Returns a fixed-size list backed by the specified array.

Here as you provide as argument an ArrayList<Integer>, it will return a List of what you provided so a List<ArrayList<Integer>>.

You need to call List#contains(Object) on your list something like ary.contains(myInteger).

Comments