コンパレータを使用して
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");
}
}
しかし、少し複雑なクラスの場合に、より理にかなって。たとえば、ここにあなたが彼らのx座標
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を使用して2点を比較するコンパレータを望んでいた場合はどうなるのかですコンパレータ/ –
意味のある方法でコンパレータを定義する必要があります。 –
次の行でのみ使用する場合は、コンパレータは必要ありません。ちょうど同様に 'if(5 <3)'と書くこともできます。その考え方は、ロジックを定義するコードを、それを使用する必要があるコードから切り離すことです。だからあなたはそれをメソッドに渡したいと思うだろう。 – Thilo