java - 如何在Java中存储 vector ?数据类型是什么?

标签 java vector

我刚刚读过this教程。这是关于游戏开发的,它基本上说我需要将加速度、速度、位置存储为 vector 来制作游戏物理。希望这是有道理的!我现在需要选择数据类型...例如我需要存储诸如...之类的值

(3, 5, 2)

(6, 2, 3)

(2, 3)

另外,我需要像这样进行加法和减法......

(0, 1, 4) + (3, -2, 5) = (0 + 3, 1 - 2, 4 + 5) = (3, -1,9)

在这种情况下我应该使用什么数据类型?

对于一个 vector ,可能有两个整数( float / double )?也许一个 vector 的数组,其中值是整数( float / double )?

最佳答案

听起来你想要三个值(可能是双倍):

public class Vector3
{
    private final double x;
    private final double y;
    private final double z;

    public Vector3(double x, double y, double z)
    {
        this.x = x;
        this.y = y;
        this.z = z;
    }

    public Vector3 plus(Vector3 other)
    {
        return new Vector3(x + other.x, y + other.y, z + other.z);
    }

    // etc
}

请注意,我已将其设为不可变 - 这并不总是性能的最佳选择(这可能与您的情况相关),但有助于提高可读性。

关于java - 如何在Java中存储 vector ?数据类型是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844193/

相关文章:

r - 如何获得向量 x 中向量 y 的补码

c++ - C++在 vector 中查找特定元素

c++ - 调整 vector 大小是否会使迭代器无效?

c++ - 具有模板模板参数的模板定义,可以专门化为类,例如,std::vector<std::string> 或 std::map<std::tree>

java - CPU使用率峰值玩框架java mysql

java - HttpServletRequest - 编码 url 和隐藏字段参数的快速方法

java - 什么时候使用网络框架?

java - Wildfly-RestEasy,JAX-RS : limit request per second for user/ip

java - 具有 1 个类和 2 个子类但不使用继承的设计模式

c++ - 如何创建特定的 std::vector 迭代器?