Monday, 7 October 2019

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);

Answer



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



You can, however, have a List 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 list = Arrays.asList(spam);



See this code run live at IdeOne.com.


No comments:

Post a Comment

php - file_get_contents shows unexpected output while reading a file

I want to output an inline jpg image as a base64 encoded string, however when I do this : $contents = file_get_contents($filename); print ...