猿问

比较包含两个数字的类

所以,我有一个包含两个数字的类,更准确地说X是 和Z。我将其存储在TreeMap需要关键类实现的上Comparable。问题是,我如何将X和Z与方法上的其他类进行比较compareTo()?


我已经尝试将两个类的X和整数相加并将它们与 进行比较,但这不是一个好的解决方案,因为如果切换和,它将以相同的结果结束。ZInteger.compare()XZ


public 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);

    }

}


慕村225694
浏览 66回答 1
1回答

慕莱坞森

解决方法:&nbsp; &nbsp; @Override&nbsp; &nbsp; public int compareTo(@Nonnull Position2D position2D) {&nbsp; &nbsp; &nbsp; &nbsp; int xComparison = Integer.compare(this.getX(), position2D.getX());&nbsp; &nbsp; &nbsp; &nbsp; int zComparison = Integer.compare(this.getZ(), position2D.getZ());&nbsp; &nbsp; &nbsp; &nbsp; return xComparison != 0 ? xComparison : zComparison;&nbsp; &nbsp; }
随时随地看视频慕课网APP

相关分类

Java
我要回答