#1 how to convert int[]/ Integer[] to list
for int[]:
int[] arr = {1, 2, 3};
//you have to box the primitive type of Integer
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
for Integer:
Integer[] arr = {1, 2, 3};
List<Integer> list = Array.asList(array);
but cannot do:
list.remove(0); // UnsupportedOperationException :(
Here you cannot remove the 0 element because asList returns a fixed-size list backed by the specified array. So you should do something like:
List<Object> newList = new ArrayList<>(Arrays.asList(array));
in order to make the newList modifiable.
#2 how to convert Integer[] to list, and to int[]
Integer[] arr = {1, 2, 3};
//to list
List<Integer> list = Array.asList(array);
// to int[]
int[] array = list.stream().mapToInt(x->x).toArray();
//to back to Integer[]
Integer[] array = list.stream().mapToInt(x->x).boxed().toArray(Integer[]::new);
more examples:
Integer[] a = {1,3,5};
List<Integer> testList = Arrays.asList(a);
Integer[] test = testList.toArray(Integer[]::new);
int[] a = {1,3,5};
List<Integer> testList = Arrays.stream(a).boxed().collect(Collectors.toList());
Integer[] test = testList.toArray(Integer[]::new);
System.out.println(Arrays.toString(test));
#3 How to convert two demention Integer array to List, and convert it back
Integer[][] b = new Integer[3][2];
b[0] = new Integer[]{31, 32};
b[1] = new Integer[]{21, 22};
b[2] = new Integer[]{11, 12};
List<Integer[]> testList2 = Arrays.asList(b);
convert it back:
Integer[][] test2 = testList2.toArray(Integer[][]::new);
#4 How to convert two dimension int array to List, and convert it back
int[][] intervals;
List<int[]> list;
list.add(intervals[i]);
int[][] arr = list.toArray(int[][]::new);
#5 int[] to set
Set<Integer> set = Arrays.stream(num).boxed().collect(Collectors.toSet());
if Integer[] to set, then, just remove boxed().
#5 int[] to set
Set<Integer> set = Arrays.stream(num).boxed().collect(Collectors.toSet());
if Integer[] to set, then, just remove boxed().
Comments
Post a Comment