Java中HashMap,Hashtable和LinkedList
来源:互联网 发布:淘宝怎么上聚划算 编辑:程序博客网 时间:2024/06/05 06:45
今天碰到一个很有意思的问题,就是关于使用LinkedList作为HashMap或者Hashtable得key,但是最后发现数据并没有存进去。
首先说一下HashMap,Hashtable吧,它们都继承了Cloneable, Map, Serializable。它们两个基本上是一样的,“The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.”。区别就是HashMap允许“ null values and the null key”,同时 unsynchronized。它的性能取决于“ initial capacity and load factor”,具体参考官方文档。HashMap还有一个特性就是不能保证存入的元素的顺序,“HashMap does not guarantee that the order will remain constant over time。” 对于存入到里面的key,要求“To successfully store and retrieve objects from a hashtable, the objects used as keys must implement the hashCode
method and the equals
method. ”。更具我的测试,其实这个对于HashMap也是适用的。
这个就和我今天碰到的问题联系上了,LinkedList类里面的hashCode()函数来源于List.hashCode(),具体如下:
也就是说hashCode依赖于内部存储的对象,恰好我存储的是一个抽象类,以方便实现多态性,所以并没有实现hashCode函数。如果存储的是类似String的基本数据类型或者是实现了hashCode函数的对象就可以了。
最后还有一个和HashMap有点容易混淆的类就是TreeMap。它继承了“Serializable, Cloneable, Map<K,V>, SortedMap<K,V>”,是SortedMap接口类唯一的实现。它本质上是“Red-Black tree”,里面存储的key是升序排列的,“ascending key order”。
参考:
http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Hashtable.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/LinkedList.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html
http://java.sun.com/j2se/1.5.0/docs/api/java/util/SortedMap.html
- Java中HashMap,Hashtable和LinkedList
- JAVA中HashTable和HashMap
- Java中hashmap和hashtable
- java中hashmap和hashtable的区别
- java中hashmap和hashtable的区别
- Java中HashTable和HashMap的区别
- java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- java中hashMap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- Java中hashmap和hashtable的区别
- JAVA中HashMap和Hashtable区别
- Java中HashMap和HashTable的区别
- Java中HashMap和HashTable的区别 .
- JAVA中HashMap和Hashtable区别 .
- python 执行系统命令比较
- 定义datatable,列
- 周鸿袆眼里的程序员创业
- PC安装Mac OS X 10.5.8
- log4j 资源文件中文异常
- Java中HashMap,Hashtable和LinkedList
- [转]Which SAP Functional Module is the Hottest? A JonERP.com Exclusive
- QT生成DLL,调用DLL
- Cache Management in ASP.NET
- js分割取某字符在字符串中的个数
- sprintf函数详细解释
- 辞职
- 使用ATL的W2A和A2W宏
- 两个 下拉列表框 Select 的 Option 互相移动