오늘은 Spring 공부
공부/점심밥/공부/저녁밥/공부/간식/공부
내일도공부/그다음날도공부/매일공부
우선
함수를 값으로 전달하는데, 어딘가에 구현하지 않고 그냥 간단하게 구현해서 넘기고 싶으면 람다식을 이용
// 주말의 주차장 추가
ArrayList<Car> weekendParkingLot = new ArrayList<>();
weekendParkingLot
.addAll(parkCars(carsWantToPark, (Car car) -> car.hasParkingTicket() && car.getParkingMoney() > 1000));
// 기본적으로 문법은 다음과 같습니다.
(파라미터 값, ...) -> { 함수 몸체 }
// 아래의 함수 두개는 같은 함수입니다.
// 이름 반환타입, return문 여부에 따라 {}까지도 생략이 가능합니다.
public int toLambdaMethod(int x, int y) {
return x + y;
}
(x, y) -> x + y
// 이런 함수도 가능하겠죠?
public int toLambdaMethod2() {
return 100;
}
() -> 100
// 모든 유형의 함수에 가능합니다.
public void toLambdaMethod3() {
System.out.println("Hello World");
}
() -> System.out.println("Hello World")
Collections는 Java의 유틸리티 클래스 중 하나로, 자바 컬렉션 프레임워크에 관련된 메서드를 제공합니다. 이 클래스는 다양한 정적 메서드(static methods)를 포함하며, 컬렉션 데이터 구조(예: 리스트, 집합, 맵)를 조작하고 정렬하거나 다양한 컬렉션 관련 작업을 수행하는 데 사용됩니다.
이런건 사용 예시를 외우며 익히는게 좋을듯.
Collections.max(memoList.keySet())는 memoList라는 맵(Map)의 키 집합(Set)에서 가장 큰 키 값을 찾는 역할
한번 더 추상화된 자료구조와 자주 사용하는 프로그래밍 API를 제공한 것
자료구조의 “흐름”을 객체로 제공해주고, 그 흐름동안 사용할 수 있는 메서드들을 api로 제공해주고 있는 것. 일단은 “자료구조” (리스트, 맵, 셋 등)의 흐름이라고 비유하면 이해가 조금 더 쉬울 것 같습니다.
List<String> carNames = Arrays.asList("Series 6", "A9", "Ionic 6");
carNames.stream()
.forEach(System.out::println);
// 결과
// Series 6
// A9
// Ionic 6
•각각의 원소에 넘겨받은 함수를 실행해줍니다.
하지만 넘겨받은 반환값을 가지고 뭘 하지는 않으며, 있다고 해도 무시됩니다.
carNames.stream()
.map(name -> name.toUpperCase()).toList();
// 결과
// ["SERIES 6", "A9", "IONIC 6"]
forEach와는 반대로 넘겨받은 토대로 값을 변환시키는데 주로 사용됩니다.
::는 Java 및 다른 프로그래밍 언어에서 메서드 참조(operator) 또는 메서드 레퍼런스로 알려진 특수한 연산자입니다. 메서드 참조는 메서드를 가리키거나 참조하는 데 사용되며, 주로 람다 표현식과 함께 사용됩니다. 메서드 참조를 사용하면 기존 메서드를 다른 코드 블록에서 간단하게 재사용할 수 있습니다.
메서드 참조의 주요 사용 사례는 다음과 같습니다:
// 예: Math 클래스의 정적 메서드 max를 참조
BinaryOperator<Integer> maxFunction = Math::max;
int result=maxFunction.apply(10, 20); // 결과: 20
// 예: 문자열의 길이를 가져오는 메서드를 참조
Function<String, Integer> lengthFunction = String::length;
int length=lengthFunction.apply("Hello"); // 결과: 5
// 예: 문자열 생성자를 참조하여 새로운 문자열을 만듦
Supplier<String> stringSupplier = String::new;
String new String=stringSupplier.get();
메서드 참조를 사용하면 람다 표현식을 간결하게 만들고 코드의 가독성을 향상시킬 수 있습니다. 또한, 메서드 참조는 함수형 프로그래밍 스타일에서 유용하게 사용되며, 코드를 간결하고 모듈화된 방식으로 작성하는 데 도움을 줍니다.
강의 정리는 인텔리제이 주석과 내 원노트에 있다 하하하
이것까지 옮기진 못하겠다.