import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FuncTest {
public static void main(String[] args) {
final List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
final String result = numbers.stream().map(String::valueOf).collect(Collectors.joining(":"));
System.out.println("구분자 붙여서 출력하기 : " + result);
final List<String> strs = Arrays.asList("가", "나", "가나", "가나다");
final String result2 = strs.stream().filter(t->t.contains("가")).collect(Collectors.joining(", "));
System.out.println("문자열 포함시 출력하기 : " +result2);
final String result3 = strs.stream().filter(t->t.matches("가")).collect(Collectors.joining(", "));
System.out.println("문자열과 등가시 출력하기 : " + result3);
final List<String> result4 = strs.stream().sorted().collect(Collectors.toList());
System.out.println("리스트 요소 정렬하기 : " + result4);
}
}
컬렉션을 사용할 때마다 컬렉션 내부의 데이터에 접근하는 일이 잦았고, 때마다 iterator를 활용하여 재사용이 어려운 코드가 길어졌다. 이 때,
✨Stream 및 함수형 프로그래밍의 공부를 추천받음. 🤞
참고 : https://velog.io/@kskim/Java-Stream-API
(매우 정리를 잘해주셔서 bb)
https://homoefficio.github.io/2016/06/26/for-loop-%EB%A5%BC-Stream-forEach-%EB%A1%9C-%EB%B0%94%EA%BE%B8%EC%A7%80-%EB%A7%90%EC%95%84%EC%95%BC-%ED%95%A0-3%EA%B0%80%EC%A7%80-%EC%9D%B4%EC%9C%A0/
(하지만 언제나 함수형 프로그래밍이 답은 아니다.)
유용한 정보 잘 보고 갑니다~
https://velog.io/@gillog/Java-Stream-Class
여기에도 Stream 관련 정리가 잘 돼있습니다 ㅋㅋㅋ