- map๊ณผ flatMap์ ๋ชจ๋ stream api์ ์ผ์ข
- ๋ ๊ฐ์ง ๋ชจ๋ map์ ์ญํ ์ ์ํํ๋ ๋ฉ์๋๋ผ๋ ์ ์์๋ ๋์ผ
- map์ ์ญํ : ์คํธ๋ฆผ ๋ด ์์๋ค์ ํน์ ์ฐ์ฐ์ ์ ์ฉํ ๊ฒฐ๊ณผ ์คํธ๋ฆผ์ ๋ฐํ
- ๊ทธ๋ฌ๋ flatMap์ flatten์ ์์ฑ์ ๊ฐ์ง๋ map ์ฐ์ฐ ๋ฉ์๋
int[][] numbers = new int[][]{
{1, 11}, {2, 22}, {3, 33}, {4, 44}
};
// 1. map
System.out.println(Arrays.stream(numbers).map(Arrays::stream).toList().size()); // 4
- ์์ ๊ฐ์ map ์ฐ์ฐ์ ๋ฐํ๊ฐ์ผ๋ก numbers ์ด์ฐจ์ ๋ฐฐ์ด์ ๊ตฌ์ฑ์์์ธ {1, 11}, {2, 22}, {3, 33}, {4, 44}์ ์คํธ๋ฆผ์ ๊ฐ๊ฐ ๋ฐํ
- ๋ฐ๋ผ์ ๊ฒฐ๊ณผ List๋ ์์ 4๊ฐ์ง array ์์๋ฅผ ๋ด๊ณ ์๋ ๋ฆฌ์คํธ๋ก size๊ฐ 4
int[][] numbers = new int[][]{
{1, 11}, {2, 22}, {3, 33}, {4, 44}
};
// 2. flatMap
System.out.println(Arrays.stream(numbers).flatMapToInt(Arrays::stream).boxed().toList().size()); // 8
- ์์ ๊ฐ์ flatMap ์ฐ์ฐ์ ๋ฐํ๊ฐ์ผ๋ก ๋ฐฐ์ด์ ๊ตฌ์ฑ์์๋ฅผ ๋จ์ผ ์์๋ค์ ์คํธ๋ฆผ์ผ๋ก ๋ณํํ์ฌ ๋ฐํ
- ์ฆ, 1, 11์ด ์คํธ๋ฆผ์ผ๋ก ๋ฐํ๋๊ณ 2, 22๊ฐ ์คํธ๋ฆผ์ผ๋ก ๋ฐํ๋์ด ๊ทธ ๋ค์ ์ฐ๊ฒฐ๋๊ณ ์ด๋ฌํ ๊ณผ์ ์ด ๋ฐ๋ณต๋จ
- ๋ฐ๋ผ์ ๊ฒฐ๊ณผ๋ 1, 11, 2, 22, 3, 33, 4, 44๊ฐ wrapping๋์ด ๋ด๊ฒจ์ ธ์๋ List ํ์
์ ๋ฆฌ์คํธ๋ก size๊ฐ 8