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

+ Recent posts