有一个 C 代码,我必须将其更改为 Java。在这段代码中有很多向量,比如 Vector2 和 Vector3。我知道我可以用 Java 语言为它们定义数组或列表但我想问一下 Java 中是否有任何预定义的结构或类与 vector2 或 vector3 一样工作?
例如,Java 中的 Point 就像一个 vector2,它有 2 个双变量,但您不能在 Point 中存储任何其他数据类型。
如果这是关于向量数学,您可能想要使用向量数学库,例如
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 数组(如不同答案中所建议的那样)。
看看java.util.ArrayList。它可以很好地用作可变长度容器。有一个 java.util.Vector 类,但出于各种原因最好不要使用它。
如果您需要对向量执行几何运算(加法、乘法、投影等),那么您将需要查看其他选项(请参阅此处开始)。
Object[2]
是一个包含 2 个元素的数组,将存储任何对象引用。或者 java.util 中有几个不同的 List 类(不知道为什么需要这么多),它们将存储任何对象并且是可变长度的。例如,要将 a 存储double
为一个对象,以便它可以与数组中的其他对象共存,请使用new Double(doubleValue)
.