재귀함수
- 재귀함수는 함수 안에 자신의 함수를 다시 호출하는 함수를 말한다.
public static int run(String exp) {
.
.
if (needToCompound) {
String[] bits = exp.split(" \\+ ");
return Integer.parseInt(bits[0]) + run(bits[1]);
}
.
.
}
map
- map은 Stream의 요소들을 내가 사용할 형태로 바꾸거나, 사용할 요소를 뽑아내는 것
mapToInt()
- String을 int로 바꿔준다. mapToInt전까지 Stream 형태, mapToInt를 통해여 IntStream으로 바뀐다.
- map과 mapToInt는 속도 차이가 심하다. 자바에서 원시타입(primitive type)과 참조타입(reference type(object))을 다루는 방식 때문이다.
mapToObj()
- 원시 타입 스트림을 참조(객체)타입 스트림으로 변경
if (needToCompound) {
String[] bits = exp.split(" \\+ ");
String newExp = Arrays.stream(bits) // Stream<String>
.mapToInt(Calc::run) // IntStream
.mapToObj(e -> e + "") // Stream<String>
.collect(Collectors.joining(" + "));
return run(newExp);
}
'JAVA' 카테고리의 다른 글
JAVA(06.27) - TDD 다항식 계산기 (0) | 2024.06.28 |
---|---|
JAVA(06.26) - TDD 다항식 계산기 (0) | 2024.06.26 |
JAVA(06.24) - Stream (0) | 2024.06.24 |
JAVA(06.21) - ArrayList, 제네릭, HashMap, Scanner (buffer 비우기) (0) | 2024.06.21 |
JAVA(06.20) - getter, setter, 예외, char, String, equals, StringBuilder, Object Class, toString (0) | 2024.06.21 |