假设我们有一个名为CompHash的类,它有30个不同的变量,如下所示:
public class CompHash{
private String abc1;
private int sdf2;
:
:
private float sgh30;
}
Run Code Online (Sandbox Code Playgroud)
和类似的类:
public class CompHash{
private HashMap diffVariables;
}
Run Code Online (Sandbox Code Playgroud)
在我需要的变量数量从1到30不等的情况下,哪两个会更好?
一般来说,你应该总是喜欢强类型CompHash(第一个).它不仅更安全,而且速度也更快.
如果您要求存储任意数量的变量,HashMap 可能是一个不错的选择.但是请记住,你正在牺牲类型安全而没有太大的收获 - HashMap可能仍会占用更多的内存,而不是单个具有大量nulls的对象.
唯一有效的用法HashMap是当你需要存储key - > value的任意对(不清楚你的情况下变量/键名是否是常量)时.但是在这种情况下,我建议使用具有共同祖先的类层次结构包装原语,并使用Visitor模式来避免单调的向下转换和丑陋instanceof的.
BTW你实际解决了什么问题?你需要的数据结构似乎有点异国情调......
| 归档时间: |
|
| 查看次数: |
1612 次 |
| 最近记录: |