有一个C代码,我必须将其更改为Java。在这段代码中有很多矢量,如Vector2和Vector3。 我知道我可以用Java语言为它们定义数组或列表但我想问一下,Java中是否存在与vector2或vector3相同的预定义结构或类?
例如,java中的Point就像一个vector2,它有2个双变量,但是你不能在Point中存储任何其他数据类型。
答案 0 :(得分:2)
如果这是关于矢量数学,你可能想要使用矢量数学库,例如
javax.vecmath: http://docs.oracle.com/cd/E17802_01/j2se/javase/technologies/desktop/java3d/forDevelopers/j3dapi/javax/vecmath/package-summary.html
否则,您可能希望使用java.util.ArrayList,它是与c ++ stl向量最接近的匹配项。不要使用java Vector类,它只是为了与旧代码兼容而维护。
对于固定大小的向量,您可能只想使用Java数组(如另一个答案所示)。
答案 1 :(得分:0)
看看java.util.ArrayList。它适用于可变长度的容器。有一个java.util.Vector类,但最好不要将它用于a variety of reasons。
如果您需要对矢量执行几何运算(加法,乘法,投影等),那么您需要查看其他选项(请参阅here开始)。
答案 2 :(得分:0)
Object[2]
是一个包含2个元素的数组,用于存储任何对象引用。或者java.util中有几个不同的List类(不确定为什么需要这么多),它们将存储任何对象并且是可变长度的。例如,要将double
存储为对象,以便它可以与数组中的其他对象共存,请使用new Double(doubleValue)
。