HashMap and Object
最近做了一个关于数据统计的项目,频繁地使用的HashMap来做存取,觉得特别不方便。每次取数据需要十分关注Map的key值是否写对,经常因为key值某个字母大小写的问题导致取出数据为null。同时因为需要存储不同的对象,所以用Map<String, Object>的方式进行存储,导致每次取数据的时候又需要对value进行强制转换。
项目做完之后,有在思考,直接使用一个对象来存储这些数据是否更方便。上网查了HashMap和Object的对比,下面简要说明一下。
原文见:stackoverflow链接
HashMap优势:
灵活
Object优势:
- 对于相同数量的域,HashMap需要比Object占用更多的内存
- 对于基础类型,HashMap强制进行装箱
- HashMap创建和访问比Object更慢
- HashMap可读性差
总结:如果业务逻辑需要固定数据的域,那么拥有特殊目的的类明显胜过一筹。如果域是通过动态配置的,那么使用HashMap更加明智。当然可以使用混合设计,一个对象使用HashMap作为内部存储,暴露一些方法来增加更多的域。