Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting array to list in Java

How do I convert an array to a list in Java?

I used the Arrays.asList() but the behavior (and signature) somehow changed from Java SE 1.4.2 (docs now in archive) to 8 and most snippets I found on the web use the 1.4.2 behaviour.

For example:

int[] spam = new int[] { 1, 2, 3 }; Arrays.asList(spam) 
  • on 1.4.2 returns a list containing the elements 1, 2, 3
  • on 1.5.0+ returns a list containing the array spam

In many cases it should be easy to detect, but sometimes it can slip unnoticed:

Assert.assertTrue(Arrays.asList(spam).indexOf(4) == -1); 
like image 773
Alexandru Avatar asked Apr 09 '10 12:04

Alexandru


People also ask

What is arrays asList () in Java?

The asList() method of java. util. Arrays class is used to return a fixed-size list backed by the specified array. This method acts as a bridge between array-based and collection-based APIs, in combination with Collection. toArray().

Can you convert an ArrayList to an array?

To convert ArrayList to array in Java, we can use the toArray(T[] a) method of the ArrayList class. It will return an array containing all of the elements in this list in the proper order (from first to last element.) Here's a short example to convert an ArrayList of integers, numbersList , to int array.


2 Answers

In your example, it is because you can't have a List of a primitive type. In other words, List<int> is not possible.

You can, however, have a List<Integer> using the Integer class that wraps the int primitive. Convert your array to a List with the Arrays.asList utility method.

Integer[] spam = new Integer[] { 1, 2, 3 }; List<Integer> list = Arrays.asList(spam); 

See this code run live at IdeOne.com.

like image 60
Joe Daley Avatar answered Sep 18 '22 11:09

Joe Daley


In Java 8, you can use streams:

int[] spam = new int[] { 1, 2, 3 }; Arrays.stream(spam)       .boxed()       .collect(Collectors.toList()); 
like image 45
Ibrahim Arief Avatar answered Sep 20 '22 11:09

Ibrahim Arief