== 예제를 통해서 람다를 활용해 보도록 하겠습니다.==
== 먼저 Apple 클래스를 만들고
사과 무게 필드 weight
사과 색상 필드 color 을 선언해줍니다.
사과의 색상같은 경우 입력되는 데이터의 종류가 정해져 있기 때문에 열거형 타입을 배우면서 사용해 봤습니다.
public class Color {} 에서 class 대신 enum을 넣어 줍니다.
enum을 Apple에서만 사용한다면 내부클래스로 작성해주셔도 됩니다.
사과가 빨강과 초록색만 있다고 가정하고 열거형 타입을 만들었습니다.
열거형 타입을 Apple 클래스에서 사용할수 있는 것을 확인 할 수 있습니다.
생성자와 getter와 setter 그리고 toString 오버라이딩을 해줍니다.
이제 Apple 클래스 만들기는 끝났습니다.
Apple 클래스로 생성된 사과들을 필터 기능으로 구분해야 하는 경우를 가정하여
람다에 대해 접근해 보겠습니다.
1. 사과 리스트에서 녹색 사과들만 필터링 하려고 합니다.
열거형 타입 enum을 Apple 클래스에서 다시 만들었습니다.
== 실행할 클래스에서 main 메서드를 만들고
List util을 사용.
Apple을 담을 리스트 inventory에
사과객체를 담아놨습니다.
3개의 GREEN 사과와 2개의 RED 사과
총 5개의 사과 객체를 만들었습니다.
FilteringApple 클래스에
try 1번을 수행할 필터 메서드를 만들겠습니다.
Apple 리스트 타입을 리턴하는
filterGreenApple 메서드 입니다.
매개변수는 Apple를 담는 리스트 타입인 inventory 입니다.
메서드를 실행하면
Apple리스트 타입의 resultList라는 새로운 어레이리스트를 만들고
iter 을 사용하여 매개변수로 받은 inventory를 하나씩 꺼내 색깔이 enum의 GREEN과 일치하는지 확인 합니다.
[위에 코드는 Apple apple : resultList 로 되어 있지만 밑에서 수정 합니다.]
열거형은 == 연산이 가능합니다. (String 비교는 equals)
일치하면 resultList에 Apple 객체를 추가 시킨후 resultList를 리턴합니다.
배교 리스트 resultList -> inventory로 수정 완료.
greens 애플 배열리스트에 filterGreenApple(inventroy) 메서드를 실행으로 리턴된 resultList의 주소값을 저장 한 후
iter로 필터가 적용 됐는지 확인 합니다.
'JAVA' 카테고리의 다른 글
자바 라이브러리 lombok와 mavenrepository 사용 _ 22.06.30 (0) | 2022.06.30 |
---|---|
java_익명 클래스(anonymous)_22.06.17(day19) (0) | 2022.06.20 |
java_입출력(세이브 기능 만들기)_22.06.17(day19) (0) | 2022.06.17 |
java_입출력(Stream,reader,writer,보조스트림)_22.06.17(day19) (0) | 2022.06.17 |
java_컬렉션_실습예제_22.06.16(day18) (0) | 2022.06.16 |