1

I have a two-dimensional ArrayList of Integers (say list)
ArrayList<ArrayList<Integer>> list=new ArrayList<ArrayList<Integer>>() //assume values are assigned
I want to convert it to a two-dimensional array of primitive int in Java. How can I achieve that using steam as we do in the one-dimensional case

ArrayList<Integer> x =  new ArrayList<Integer>();
int[] arr = x.stream().mapToInt(i -> i).toArray();
Sonu Sourav
  • 2,926
  • 2
  • 12
  • 25

1 Answers1

1

You can do it as follows:

int[][] arr = list.stream()
                  .map(l -> l.stream()
                             .mapToInt(Integer::intValue)
                             .toArray())
                  .toArray(int[][]::new);

Each inner List is mapped to an int[] (by first converting it to an IntStream), and then you convert your Stream<int[]> to an int[][].

Eran
  • 387,369
  • 54
  • 702
  • 768