gpt4 book ai didi

java - 在带有 HashMap 的 Java 中使用 Line2D

转载 作者:行者123 更新时间:2023-11-29 08:45:34 25 4
gpt4 key购买 nike

我有一组 N 个点,我想找到位于一条直线上的最大点数。

我用每对点创建了 Line2D 对象。显然,某些 Line2D 对象将具有相同的斜率和截距以使点共线。现在我想创建一种哈希表来存储具有相同斜率和截距的线的计数器。

        int x1 = 1;
int y1 = 1;
int x2 = 2;
int y2 = 2;
int x3 = 3;
int y3 = 3;


Line2D line1 = new Line2D.Double(x1, y1, x2, y2);
Line2D line2 = new Line2D.Double(x2, y2, x3, y3);


hashMap.put(line1, 1);

显然,如果我将 line2 放在 hashMap 中,它将转到另一个。我怎样才能做到这一点,因为两条线都相同,所以计数增加 1?

最佳答案

您可以创建一个包含斜率和截距值的新类。它应该有一个 equals 方法和 hashcode 方法,允许在定义的参数 epsilon 值内进行等价,以允许功能浮点相等。然后你可以使用它作为 HashMap 的键。该值将是您的 Line2D 或点对的 ArrayList。

关于java - 在带有 HashMap 的 Java 中使用 Line2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25635608/

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