类对象与Hashmap

abh*_*bhi 23 java class object hashmap

使用hashmap而不是使用对象类是好的......使用Hashmap ....

Map<String, String> cellMap = new HashMap<String, String>();
int j = 0;
while (cellIter.hasNext()) 
{
   HSSFCell myCell = (HSSFCell) cellIter.next();
   cellMap.put(columnMap[j], myCell.toString());
   j++;
}
Run Code Online (Sandbox Code Playgroud)

并使用对象类.....

ABC abc= new ABC(); 
abc.setA(myRow.getCell(0).toString());
abc.setB(myRow.getCell(1).toString());
abc.setC(myRow.getCell(2).toString());
Run Code Online (Sandbox Code Playgroud)

请在应用程序运行状况,内存要求等方面告诉我......

das*_*ght 32

这很大程度上取决于您要实现的目标:为了灵活性,哈希映射更好.但灵活性是有代价的:哈希映射也比具有相同数量的强类型字段的类更大更慢.

  • 散列映射具有比具有相同字段数的类更大的内存占用
  • 哈希地图强制拳击基元
  • 哈希映射创建和访问速度较慢

对可读性也有影响:当业务逻辑特定于具有固定数量字段的类时,特殊目的类明显胜出; 当动态配置字段时,哈希表是您唯一的选择.您还可以使用混合设计,当对象在内部使用哈希映射时,在外部提供名称很好的字段,并公开语义以添加更多"字段".

总而言之,在您决定使用哈希映射来实现其灵活性之前,您应该确定您是否真的需要设计中的所有灵活性.有时,答案是"是",有时候是"不"; 没有"一刀切"的解决方案.


JB *_*zet 5

一个对象具有字段(数据)和方法(行为)。如果您的数据包含一组固定的单元格(A,B和C),则一定要使用一个对象。

Java是OO对象,并且OO设计,封装等可以帮助您构建健壮,可维护和快速的程序。

当您必须关联可变数量的键和值时,映射很有用。但这只是一个数据结构,不允许您封装其他行为。

例如,您的对象中可能有一个getAAndB()方法,该方法返回与B串联的A。或者您可能有一些方法可以转换或查询字段。或者,您可以将ABC实例传递给使用它们的其他对象。与定义良好的方法一起使用对象ABD比使用容易得多Map<String, String>。地图的关键是什么?他们的价值观是什么?它在哪里记录?如果要更改密钥怎么办?您将如何检测代码中使用这些键的所有位置?