为了账号安全,请及时绑定邮箱和手机立即绑定

比较包含两个数字的类

比较包含两个数字的类

慕村225694 2023-03-17 15:09:49
所以,我有一个包含两个数字的类,更准确地说X是 和Z。我将其存储在TreeMap需要关键类实现的上Comparable。问题是,我如何将X和Z与方法上的其他类进行比较compareTo()?我已经尝试将两个类的X和整数相加并将它们与 进行比较,但这不是一个好的解决方案,因为如果切换和,它将以相同的结果结束。ZInteger.compare()XZpublic class Position2D implements Comparable<Position2D> {    private int x, z;    @Override    public int compareTo(Position2D position2D) {        int coordinatesSum = this.getX() + this.getZ();        int otherCoordinatesSum = position2D.getX() + position2D.getZ();        return Integer.compare(coordinatesSum, otherCoordinatesSum);    }}
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

解决方法:


    @Override

    public int compareTo(@Nonnull Position2D position2D) {

        int xComparison = Integer.compare(this.getX(), position2D.getX());

        int zComparison = Integer.compare(this.getZ(), position2D.getZ());


        return xComparison != 0 ? xComparison : zComparison;

    }


查看完整回答
反对 回复 2023-03-17
  • 1 回答
  • 0 关注
  • 65 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信