新手是否有一种简单的方法可以让Point接受双打,还是有其他选择?

时间:2012-03-26 14:55:41

标签: java

我正在使用Java进行一些计算,它工作正常,但我注意到我的数字与我的python实现略有不同。我花了一整天的时间,但我相信这是因为我必须将我的数据投射到INT以使用点。我很新,所以我可能错了,但我在java docs读到它似乎只接受整数(我真的希望我误解了它)。我真正喜欢的原因是因为我的数据格式相似,我不想重复。数据格式示例:(1,0),(1,2),(10,2)等。

我想我的两个问题是:

  1. 有没有办法获得接受双打的积分?或者对初学者来说真的很难吗?
  2. 如果它不可能,是否有任何替代数据结构我可以用来实现相同的东西(想到哈希映射,但我认为它将替换(1,0)与(1,1)我的程序将认为独特)?
  3. 由于

4 个答案:

答案 0 :(得分:5)

Point主要用于具有整数像素值的GUI目的。请改为Point2D.Double

答案 1 :(得分:3)

答案 2 :(得分:1)

您可以使用Point API中的setLocation()方法将double值传递给Point对象:

编辑

有人指出Point类的setLocation()方法舍入为整数值,所以可能不是你想要的。我的错误。

但是Point2D.Double类有一个接受双精度的构造函数,这可能是你想要的。

答案 3 :(得分:1)

在您链接到的API文档中,您可以看到:

  

从类java.awt.geom.Point2D继承的嵌套类

     

Point2D.DoublePoint2D.Float

例如,您可以使用Point2D.Double

Point2D.Double p = new Point2D.Double(1.0, 2.0);