백엔드/JAVA
[JAVA] Stream_ map() 과 flatMap() 차이
zincoder
2023. 11. 29. 20:02
728x90
map()
-입력: 배열
String[] arr = new String[]{"AA", "BB", "CC"};
-출력: List<String[]>
{{"A","A"},{"B","B"},{"C","C"}}
//예시코드
String[] arr = new String[]{"AA", "BB", "CC"};
List<String[]> mapStream = Arrays.stream(arr).peek(p->System.out.println("peek1:"+p)).
map(m->m.split("")).peek(p->System.out.println("peek2:"+p)).collect(Collectors.toList());
//mapStream.stream().forEach(System.out::println);
for (int i = 0; i < mapStream.size(); i++) {
for (int j = 0; j< mapStream.get(0).length; j++) {
System.out.print("~~[" + i + ","+ j +"]::" + mapStream.get(i)[j]+", ");
}
}
//출력
flatMap
-입력: 배열
String[] arr = new String[]{"AA", "BB", "CC"};
-출력: List
{"A","A","B","B","C","C"}
//flatMap예시코드
String[] arr = new String[]{"AA", "BB", "CC"};
List<String> flatMapStream = Arrays.stream(arr).peek(p->System.out.println("peek1:"+p))
.map(m->m.split("")).peek(p->System.out.println("peek2:"+p))
.flatMap(f->Arrays.stream(f)).peek(p->System.out.println("peek3:"+p))
.collect(Collectors.toList());
//출력
peek1:AA
peek2:[Ljava.lang.String;@2ff4acd0
peek3:A
peek3:A
peek1:BB
peek2:[Ljava.lang.String;@54bedef2
peek3:B
peek3:B
peek1:CC
peek2:[Ljava.lang.String;@5caf905d
peek3:C
peek3:C
728x90