diff --git a/src/main/java/com/github/hcsp/polymorphism/Point.java b/src/main/java/com/github/hcsp/polymorphism/Point.java index 780e6b1..25448df 100644 --- a/src/main/java/com/github/hcsp/polymorphism/Point.java +++ b/src/main/java/com/github/hcsp/polymorphism/Point.java @@ -1,13 +1,17 @@ package com.github.hcsp.polymorphism; +import javafx.print.Collation; + import java.io.IOException; import java.util.Arrays; +import java.util.Collections; import java.util.List; -public class Point { +public class Point implements Comparable { private final int x; private final int y; + // 代表笛卡尔坐标系中的一个点 public Point(int x, int y) { this.x = x; @@ -53,7 +57,11 @@ public String toString() { // 按照先x再y,从小到大的顺序排序 // 例如排序后的结果应该是 (-1, 1) (1, -1) (2, -1) (2, 0) (2, 1) - public static List sort(List points) {} + public static List sort(List points) { + Collections.sort(points); + return points; + + } public static void main(String[] args) throws IOException { List points = @@ -65,4 +73,20 @@ public static void main(String[] args) throws IOException { new Point(2, -1)); System.out.println(Point.sort(points)); } + + @Override + public int compareTo(Point o) { + if (this.x < o.x) { + return -1; + } else if (this.x > o.x) { + return 1; + } + + if (this.y < o.y) { + return -1; + } else if (this.y > o.y) { + return 1; + } + return 0; + } }