0

有一个 C 代码,我必须将其更改为 Java。在这段代码中有很多向量,比如 Vector2 和 Vector3。我知道我可以用 Java 语言为它们定义数组或列表但我想问一下 Java 中是否有任何预定义的结构或类与 vector2 或 vector3 一样工作?

例如,Java 中的 Point 就像一个 vector2,它有 2 个双变量,但您不能在 Point 中存储任何其他数据类型。

4

3 回答 3

2

如果这是关于向量数学,您可能想要使用向量数学库,例如

否则,您可能想要使用 java.util.ArrayList,这是与 c++ stl 向量最接近的匹配项。不要使用 java Vector 类,它只是为了与旧代码兼容而维护。

对于固定大小的向量,您可能只想使用 Java 数组(如不同答案中所建议的那样)。

于 2013-11-10T13:48:08.003 回答
0

看看java.util.ArrayList。它可以很好地用作可变长度容器。有一个 java.util.Vector 类,但出于各种原因最好不要使用它。

如果您需要对向量执行几何运算(加法、乘法、投影等),那么您将需要查看其他选项(请参阅此处开始)。

于 2013-11-10T13:47:08.360 回答
0

Object[2]是一个包含 2 个元素的数组,将存储任何对象引用。或者 java.util 中有几个不同的 List 类(不知道为什么需要这么多),它们将存储任何对象并且是可变长度的。例如,要将 a 存储double为一个对象,以便它可以与数组中的其他对象共存,请使用new Double(doubleValue).

于 2013-11-10T13:51:40.490 回答