lambda의 스타일
1. (parameter) -> expression
2. (parameter) -> {statement;}
이를 활용한 정수 리스트를 정렬하는 방식 :
numbers.sort((Integer num1, Integer num2) -> {return num1-num2;});
우선, 람다는 함수형 인터페이스만 쓰일 수 있습니다.
함수형 인터페이스란 오직 하나의 추상메서드만 가지는 인터페이스를 의미합니다.
그래서 유일한 추상메서드를 보고 타입을 추론할 수 있기 때문에 타입을 명시하지 않아도 상관없습니다.
numbers.sort((num1,num2)->num1-num2);
or
numbers.sort((num1,num2)->Integer.compare(num1,num2));
그래서 이를 응용하여 sort() 함수에 적용시켜준다면 아래와 같이 작성할 수 있습니다.
ArrayList<String> g = new ArrayList<>();
g.add("a");
g.add("c");
g.add("b");
Collections.sort(g,(p1,p2)->g.get(p2)-g.get(p1));
'JAVA' 카테고리의 다른 글
2차원 배열 정렬, 문자열 배열 정렬 (1) | 2022.10.03 |
---|---|
Queue와 BFS (1) | 2022.09.30 |
PriorityQueue ( 우선순위큐 ) (0) | 2022.09.27 |
putIfAbsent (0) | 2022.08.11 |
Java의 이중 중괄호 초기화 (0) | 2022.08.11 |