使用数据表的比较器进行自定义排序
您提到使用数据表来显示汽车列表并希望按汽车颜色对它们进行排序,不按字母顺序排列。为了实现这一点,您可以利用 Java 的 Comparator 接口。
您尝试过使用 Comparable 和 Comparator,但它似乎只允许按字母顺序排序。这是使用自定义比较器的增强方法:
首先按照建议定义汽车颜色的枚举:
public enum PaintColors { SILVER, BLUE, MAGENTA, RED }
更新您的 ColorComparator 以根据 PaintColors 枚举进行比较:
static class ColorComparator implements Comparator<Car> { public int compare(Car c1, Car c2) { return c1.getColor().compareTo(c2.getColor()); } }
将 Car 中的字符串颜色字段替换为 PaintColors枚举:
private PaintColors color;
在您的主要方法中,更新您的汽车列表并使用自定义比较器进行排序:
carList.add(new Car("Ford", PaintColors.SILVER)); ... Collections.sort(carList, new ColorComparator());
此方法使用枚举来表示汽车颜色,允许您定义枚举声明中的自定义排序顺序。然后,ColorComparator 使用定义的顺序对汽车列表进行有效排序。
以上是如何使用 Java 中的自定义比较器按颜色对汽车数据表进行排序?的详细内容。更多信息请关注PHP中文网其他相关文章!