使用单个hashmap与多个变量

Har*_*rke 4 java

假设我们有一个名为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不等的情况下,哪两个会更好?

Tom*_*icz 7

一般来说,你应该总是喜欢强类型CompHash(第一个).它不仅更安全,而且速度也更快.

如果您要求存储任意数量的变量,HashMap 可能是一个不错的选择.但是请记住,你正在牺牲类型安全而没有太大的收获 - HashMap可能仍会占用更多的内存,而不是单个具有大量nulls的对象.

唯一有效的用法HashMap是当你需要存储key - > value的任意对(不清楚你的情况下变量/键名是否是常量)时.但是在这种情况下,我建议使用具有共同祖先的类层次结构包装原语,并使用Visitor模式来避免单调的向下转换和丑陋instanceof的.

BTW你实际解决了什么问题?你需要的数据结构似乎有点异国情调......