(자바 8)
import java.util.Comparator;
public class ComparatorDemo {
public static void main(String... args) {
// (1) Defining a custom comparator using lambda
// Comparator<Integer> c = (Integer a, Integer b) -> a - b;
// (2) comparingInt takes a lambda which maps from object you want to compare to an int
Comparator<Integer> c = Comparator.comparingInt(a -> a);
if (c.compare(3, 5) < 0)
System.out.println("Yes, It's less");
}
}
, 약간 더 복잡한 클래스의 경우에 더 의미가있다. 예를 들어, 다음은 당신이 당신이 그들의 사용하여 두 점을 비교하는 비교기를 원한다면 할
import java.util.Comparator;
class Point {
private int x;
private int y;
public Point(int x, int y) { this.x = x; this.y = y; }
public int getY() { return y; }
public void setY(int y) { this.y = y; }
public int getX() { return x; }
public void setX(int x) { this.x = x; }
}
public class ComparatorDemo {
public static void main(String... args) {
Comparator<Point> pc = Comparator.comparing(Point::getX);
Point p1 = new Point(1, 2);
Point p2 = new Point(2, 2);
if (pc.compare(p1, p2) < 0) {
System.out.println("Yes, it's less");
}
}
}
https://www.mkyong.com/java/java-object-sorting-example-comparable을 X를 좌표 것 인 것이다 -and-comparator/ –
의미있는 방식으로 비교기를 정의해야합니다. –
다음 줄에서만 비교기를 사용할 필요는 없습니다. 'if (5 <3)'라고 써도 될 것입니다. 아이디어는 논리를 정의하는 코드와이를 사용해야하는 코드를 분리하는 것입니다. 그래서 당신은 그것을 방법으로 전달하려고 할 것입니다. – Thilo