Lambda Expression (람다식)
- 자바 1.8 버전에서 추가된 메서드
- 다른말로 익명 함수(anonymous function)이라고 함
- 이름이 없는 함수를 말하며 코드에서 딱 한 번 실행할 목적으로 사용하거나
- 함수 자체를 다른 함수의 인수로 전달 할 때 사용
private static class Node {
int dest, cost;
public Node(int dest, int cost) {
this.dest = dest;
this.cost = cost;
}
}
public static void main(String[] args) {
Node[] nodes = new Node[5];
nodes[0] = new Node(1, 10);
nodes[1] = new Node(2, 20);
nodes[2] = new Node(3, 15);
nodes[3] = new Node(4, 5);
nodes[4] = new Node(1, 25);
Arrays.sort(nodes, (o1, o2) -> Integer.compare(o1.cost, o2.cost)); // ➊ 람다식
Arrays.sort(nodes, new Comparator<Node>() {
@Override
public int compare(Node o1, Node o2) {
return Integer.compare(o1.cost, o2.cost);
}
}); // ➋
}
Integer.compare(int x, int y)
x < y면 -1 반환
x > y면 1 반환
x == y면 0 반환