存储5个属性的最有效方法

时间:2015-01-17 05:16:25

标签: java

所以我试图存储一个对象的5个属性,它们是5个不同的整数。

存储这些产品的最佳方法是什么?我在考虑数组,但数组并不灵活。我还需要能够检索所有5个属性,因此数组可能无法正常工作。

这里有一些背景,如果它有帮助:我目前正在制作类似于Terraria(或2D中的Minecraft)的游戏。 我想存储对象在map(x,y)上的位置,它位于map(x,y)部分的屏幕上,以及它是什么类型的对象。

3 个答案:

答案 0 :(得分:3)

import java.awt.Point

public class MyClass {
    private Point pointOnMap;
    private Point pointOnScreen;
    // ... 
}

Point类绑定x& y将值赋值为单个对象(这是有意义的),并为您提供有用的基本方法,例如translatedistancehttp://docs.oracle.com/javase/7/docs/api/java/awt/Point.html

答案 1 :(得分:1)

无法在不查看所有代码的情况下预测存储属性的最有效方法。 (而且我一个人不想:-))其次,你还没有清楚地解释你正在优化的内容。速度?内存使用情况?最小化GC暂停?

然而,这种气味过早优化。浪费时间试图在没有构建的东西上优化性能,并且没有任何证据表明这部分代码库的性能将会很重要。

我的建议是:

  1. 选择一个简单的设计并实现它;例如带有getter和setter的5个private int变量。如果不方便,请选择更方便的API。

  2. 完成该计划。

  3. 让它发挥作用。

  4. 基准测试。它运行得足够快吗?如果是,请停止。

  5. 简介。选择最大的性能热点并进行优化。

  6. 重新运行基准测试和配置文件,以检查您的优化是否使事情变得更快。如果是,那么"提交"它。如果没有,请将其退回。

  7. 转到第4步。

答案 2 :(得分:0)

我建议使用HashMap,其中key可以是objectId-attributeName,值将是integer值,因为您必须根据键进行检索。这将是O(1)操作

相关问题