gpt4 book ai didi

java - 如何根据对象在直线上的位置来比较对象

转载 作者:行者123 更新时间:2023-12-01 15:52:50 25 4
gpt4 key购买 nike

我正在尝试编写一个比较方法来执行此操作。

// If a and b lie on the same horizontal line, 
// then a < b when a is to the left of b
// Otherwise, a < b when a is below b

我真的不知道如何做到这一点,通常我只是比较 a>b 是否返回 +ve int 和 -ve int 如果小于或 0 等于。

根据您的建议我的解决方案......

我借鉴了 Jim Blackler、Ralph 和 Peter Lawrey 的想法并想出了这个。它有效,抱歉我有点困惑,没有想到笛卡尔坐标,谢谢 Aasmund Eldhuset,这是我最终的比较方法..并且它有效

类词典编排实现比较器{ //这需要重写所以...
//如果a和b位于同一条水平线上, //当a在b的左边时a < b //否则,当 a 低于 b 时,a < b
public int比较(a点,b点) { if (a.y == b.y)//y 轴相同(同一行) { if(a.x < b.x)//在b的左边(在x轴上) 返回-1; 别的 return 1;//到b的右边 } else if(a.y < b.y)//y 轴不相同(下面不在同一行) { 返回-1;

    }
else
return 0;
}

}

最佳答案

你的意思是像

class Point implements Comparable<Point> {
double x,y;

public int compareTo(Point b) {
// If a and b lie on the same horizontal line,
if (y == b.y)
// then a < b when a is to the left of b
return x < b.x ? -1 : x > b.x ? +1 : 0;
// Otherwise, a < b when a is below b
return y < b.y ? -1 : y > b.y ? +1 : 0;
}
}

关于java - 如何根据对象在直线上的位置来比较对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com