日常
昨天听说了这么一道题,往HashMap中读写10w条字符串,如何处理可以消耗更少的cpu资源。后面感觉有点蹊跷,不知所以
后面问了dalao一下,问题是没有解决,但是言语之间似乎有这么一个信息,HashMap和HashTable在存储数据时是有区别的
我是想啊,要么HashTable对数据量大的情况下有更好的存储性能???,要么是HashTable有更好的并行
性???
of cause,查一下嘛
区别
大概主要的意思是有这么几点区别:
两者继承自不同的类,HashMap是HashTable的轻量级实现(非线程安全的实现),但都完成了Map接口
- HashMap去掉了HashTable中的contains方法,但是加上了containsValue()和containKey()方法
- HashTable是同步的,而HashMap是非同步的,由于非线程安全,效率上比HashTable要高
- HashMap允许空键值,而HashTable不允许
HashMap和HashTable采用的hash/rehash算法大致一样,性能不会差很多
后记
好吧,虽然看起来差别不大,但是真的要并行式去存储会不会可以呢?(不晓得啊,其实也不是很懂并行 0.0 ),问题过两天解决了再继续更好了