作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我写这个问题是因为我不知道如何对我需要的数据模型进行建模。
首先,这就是我所拥有的(我简单了一下):我有一个List<Foo> list;
其中 Foo 具有三个属性:
public class Foo {
public int one;
public int two;
public long three;
}
现在我有另一个List<int> list2;
最重要的是:list
中的第一项第一个位于 list2
是对应的。
我想要得到什么:我想要一个结构,我可以在其中输入一、二、三,然后得到相应的 int
我厌倦了这个:我找出了 1、2 和 3 的最大值,然后创建了 int[maxOne][maxTwo][maxThree]
并在循环中填充它:
int count = 0;
int[][][] daten = new int[maxOne][maxTwo][maxThree];
for (Foo foo : list)
{
daten[foo.one][foo.two][foo.three] = list2[count];
count++;
}
但这不是一个好主意,因为 new int[maxOne][maxTwo][maxThree];
需要非常多的内存,而且并不是这个 3 维数组中的每个值都需要。
那么你的建议是什么?
最佳答案
使用 HashMap<Foo, Integer>
;请务必覆盖 hashcode
和equals
在Foo
( equals
应该很容易,请参阅 this article 以获取覆盖 hashcode
的示例)
关于java - 如何在没有太多空间的情况下对该数据模型进行建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16860157/
我是一名优秀的程序员,十分优秀!