I created an integer list and am trying to return the index of a specific value. The array is 3,8,2,5,1,4,7,6 and I want to return the indexOf(3), which should be 0.
I've tried the following in the Eclipse Java Scrapbook after importing java.util.*:
int[] A = {3,8,2,5,1,4,7,9}; Arrays.asList(A).indexOf(3) I have also tried:
int[] A = {3,8,2,5,1,4,7,6}; ArrayList<Integer> l = new ArrayList(Arrays.asList(A)); l.indexOf(3) Both are returning -1. Why? How to get this to work as expected?
Arrays.asList(A) returns a List<int[]>. This is because it expects an array of objects, not primitive types. Your options include:
Integer[] instead of int[] Arrays.asList(3,8,2,5,1,4,7,9) will work fineInts.asList(int...) method to view the primitive array as a List<Integer>. (Disclosure: I contribute to Guava.)Ints.indexOf(int[], int), which works directly on primitive arrays.It should be Integer[] not int[] in order to make it work.
Integer[] A = {3,8,2,5,1,4,7,9}; final int i = Arrays.asList(A).indexOf(3); System.out.println("i = " + i); // prints '0'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With