일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 자바 고급2편 - 네트워크 프로그램
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch12
- 자바의 정석 기초편 ch2
- 스프링 mvc2 - 타임리프
- 2024 정보처리기사 수제비 실기
- 자바의 정석 기초편 ch4
- 스프링 입문(무료)
- 데이터 접근 기술
- 자바의 정석 기초편 ch14
- 스프링 고급 - 스프링 aop
- 스프링 트랜잭션
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch11
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch13
- 자바 기초
- 자바 중급1편 - 날짜와 시간
- 자바의 정석 기초편 ch9
- 자바 중급2편 - 컬렉션 프레임워크
- 자바 고급2편 - io
- 자바의 정석 기초편 ch5
- 람다
- 자바로 계산기 만들기
- @Aspect
- 자바의 정석 기초편 ch1
- 스프링 mvc1 - 스프링 mvc
- 자바의 정석 기초편 ch7
- 자바로 키오스크 만들기
- 자바의 정석 기초편 ch6
- Today
- Total
목록자바 로드맵 강의/고급 3 - 람다, 스트림, 함수형 프로그래밍 (8)
개발공부기록

스트림 생성스트림 정의 복습스트림(Stream)은 자바 8부터 추가된 기능으로 데이터 처리에 있어서 간결하고 효율적인 코드 작성을 가능하게 해준다.스트림을 이용하면 컬렉션이나 배열에 저장된 요소들을 반복문 없이도 간단하게 필터링(filter), 변환(map), 정렬(sorted) 등의 작업을 할 수 있다. 특히 중간 연산과 최종 연산을 구분하며 지연 연산(lazy evaluation)을 통해 불필요한 연산을 최소화하는데, 자바 스트림은 내부적으로 파이프라인 형태를 만들어 데이터를 단계별로 처리하고 결과를 효율적으로 반환한다. 스트림 생성 정리표생성 방법코드 예시특징컬렉션list.stream()List, Set 등 컬렉션에서 스트림 생성배열Arrays.stream(arr)배열에서 스트림 생성Stream.o..
스트림 API 시작스트림 API 맛보기직접 만든 MyStreamV3 사용 예시return MyStreamV3.of(students) .filter(s -> s.getScore() >= 80) .map(s -> s.getName()) .toList(); 앞서 필터와 맵 등을 여러 함수와 함께 사용하는 MyStreamV3을 직접 만들어보았는데, 코드를 보면 데이터들이 흘러가면서 필터되고 매핑이 된다. 어떻게 수행해야하는지 보다는 무엇을 수행해야 하는지가 명확해지므로 결과에 집중할 수 있게 되는데 이런 방식을 선언적 프로그래밍 방식이라 한다. 자바도 스트림 API라는 이름으로 스트림 관련 기능들을 제공하는데 더 정교하고 더 많은 기능을 제공한다.(I/O스트림이 아님) St..
메서드 참조가 필요한 이유메서드 참조(Method References) 알아보기예제1package methodref.start;public class MethodRefStartV1 { public static void main(String[] args) { BinaryOperator add1 = (x, y) -> x + y; BinaryOperator add2 = (x, y) -> x + y; Integer result1 = add1.apply(1, 2); System.out.println("result1 = " + result1); Integer result2 = add2.apply(1, 2); System.out.println("result2 = " + result2); }}/* 실행 결과..
람다 VS 익명 클래스문법 차이// 익명 클래스 사용 예Button button = new Button();button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { System.out.println("버튼 클릭"); }});// 람다 표현식 사용 예Button button = new Button();button.setOnClickListener(v -> System.out.println("버튼 클릭")); 익명 클래스익명 클래스는 클래스를 선언하고 즉시 인스턴스를 생성하는 방식이다반드시 new 인터페이스명() { ... } 형태로 작성해야 하며 메서드를 오버라이드해서 구현한..
필터 만들기FilterMainV1 - 람다 미사용package lambda.lambda5.filter;public class FilterMainV1 { public static void main(String[] args) { List numbers = List.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 짝수만 거르기 List evenNumbers = filterEvenNumber(numbers); System.out.println("evenNumbers = " + evenNumbers); // 홀수만 거르기 List oddNumbers = filterOddNumber(numbers); S..
함수형 인터페이스와 제네릭함수형 인터페이스에 제네릭이 필요한 이유GenericMain1, 각각 다른 타입 사용package lambda.lambda3;public class GenericMain1 { public static void main(String[] args) { StringFunction upperCase = s -> s.toUpperCase(); String result1 = upperCase.apply("hello"); System.out.println("result1 = " + result1); NumberFunction square = n -> n * n; Integer result2 = square.apply(3); ..
람다 정의람다자바 8부터 도입된 람다는 자바에서 함수형 프로그래밍을 지원하기 위한 핵심 기능임람다는 익명 함수이므로 이름 없이 함수를 표현함 메서드나 함수는 아래와 같이 표현하며 이름이 있음반환타입 메서드명(매개변수) { 본문}public int add(int x) { return x + 1;} 람다는 아래처럼 이름이 없어서 간결하게 표현함(매개변수) -> {본문}(int x) -> {return x + 1;} 자바는 독립적인 함수를 지원하지 않으며 메서드는 반드시 클래스나 인터페이스에 속함 ** 용어 - 람다 vs 람다식(Lambda Expression)람다: 익명 함수를 지칭하는 일반적인 용어, 개념이라고 보면 됨람다식: (매개변수) -> {본문} 형태로 람다를 구현하는 구체적인 문법 표준..

프로젝트 환경 구성 프로젝트 설정Build: IntelliJJDK: 21 이상람다가 필요한 이유값 전달람다를 제대로 이해하려면 내부 클래스에 대한 개념을 확실하게 이해해야 함지금 설명하는 내용은 익명 클래스 활용에 대한 부분을 일부 심화한 내용임 Ex0Main - 리팩토링 전package lambda.start;public class Ex0Main { public static void helloJava() { System.out.println("프로그램 시작"); System.out.println("Hello Java"); System.out.println("프로그램 종료"); } public static void helloSpring() { ..