Edited at

Java 8 で ruby の flatten

More than 3 years have passed since last update.

ruby には flatten という配列のメソッドがあります。

arr = [1, 2, 3, [4, 5], [6, [7, 8]]]

p arr.flatten

これを Java 8 でやろうとすると多分これが一番楽だと思います。

int[][] list = {{1, 2, 3}, {4}, {5, 6}};

int[] a = Arrays.stream(list).flatMapToInt(Arrays::stream).toArray();

List だとこんな感じ

List<List<Integer>> list = Arrays.asList(

Arrays.asList(1, 2, 3),
Arrays.asList(4),
Arrays.asList(5, 6)
);
List<Integer> flatten = list.stream().flatMap(Collection::stream).collect(Collectors.toList());

これが一番楽だよ……ね……?

さっそく追記:このコード、2次元配列限定でしか動かないですね。引用してるrubyの例を再現できてない。。めんどうなんでこれ以上掘り下げないですが、3次元でもいけそうではあるかな。