CS/알고리즘

메서드 - 람다식 (compare)

아잠만_ 2024. 7. 31. 11:43

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 반환