javaarraysarraylist

Converting from int array to Integer arraylist in java


I have a problem in converting from Array to ArrayList

public class one 
{
public static void main(String args[])
{
int y[]={12,25,38,46};
two p=new two();
p.setLocations(y);
}
}


import java.io.*;
import java.util.*;   

public class two 
{
    ArrayList<Integer> data_array=new ArrayList<Integer>();


void setLocations(int locations[])
{
        ArrayList<Integer> locations_arraylist=new ArrayList(Arrays.asList(locations));
        data_array=locations_arraylist;
    for(int i=0;i<data_array.size();i++)
        System.out.println("data_array["+i+"]="+data_array.get(i));
}
}

In the below line

ArrayList<Integer> locations_arraylist=new  ArrayList(Arrays.asList(locations));
//Copying from array to ArrayList-Its converting,Please suggest

Solution

  • An int[] is quite different from a List<Integer>. For example, an Integer has an identity as well as a value. There is no very simple way to do the conversion.

    The following way works with Java 8.

    int[] array = {1, 2, 3, 4, 5};
    List<Integer> list = IntStream.of(array).boxed().collect(Collectors.toCollection(ArrayList::new));
    

    The following way works in earlier versions.

    int[] array = {1, 2, 3, 4, 5};
    List<Integer> list = new ArrayList<Integer>();
    for (int a : array)
        list.add(a);
    

    If you pass an int[] to Arrays.asList you get a List<int[]>, not a List<Integer>.