java中的Map、HashMap、HashTable
来源:互联网 发布:淘宝网自行车外胎 编辑:程序博客网 时间:2024/04/29 14:03
Java中Map、HashMap和TableMap的区别与联系
1.Map是一个接口
java.util.Map
public interface Map<K,V>
是一种键-值对的数据结构
2.HashMap是一个Map的实现类
java.util.HashMap<K,V>
public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
HashMap的数据结构
HashMap是哈希表的一种实现类,它是以数组为链表头一个二维链表,如图
解决冲突的方式,就是在相同的地址上延伸链表,HashMap是非同步的,也就是说在单线程使用时用它,当然了,也可以采用一定的方式使它同步,另外HashMap的键和值都允许为空,但是null键最多只能有一个。当用get()判断某个键是否存在的时候有可能该键存在但值为null,也可能是不存在该键,返回值为null,所以当用HashMap是不能用get()的返回值来判断该键是否存在,应该用containKeys(key)来判断,如下图。HashMap不包含contains()方法,它的哈希值每次都是重新计算的,链表头组数的默认大小是16,而且一定是2的指数。
3.HashTable也实现了Map接口,但是继承的类与HashMap不同
HashTable跟HashMap很相似,但是它线程是同步的,键不能为空(会报空指针异常),HashTable直接使用对象的hashCode,HashTable中hash数组默认大小是11,增加的方式是 old*2+1,含有contains()方法,与containsValue()等效
参考:http://www.cnblogs.com/devinzhang/archive/2012/01/13/2321481.html
- java中的Map、HashMap、HashTable
- java中的hashmap和hashtable
- java中的HashMap与HashTable
- Java中的HashTable和HashMap
- java容器--Map{Hashtable,HashMap,WeakHashMap}
- Java:Map与HashMap,Hashtable,HashSet比较
- Java Map集合之HashMap、HashTable
- Java:Map与HashMap,Hashtable,HashSet比较
- Java:Map与HashMap,Hashtable,HashSet比较
- Java 集合:Map 系列(HashMap,HashTable)
- Java:Map与HashMap,Hashtable,HashSet比较
- Java:Map与HashMap,Hashtable,HashSet比较
- Java 集合:Map 系列(HashMap,HashTable)
- java map hashmap linkedhashmap hashtable treemap
- Java:Map与HashMap,Hashtable,HashSet比较
- java中的几种泛型类——HashSet、HashMap、TreeSet、TreeMap,遍历map,排序,HashTable比较
- Map ,Hashmap,HashTable,LinkedHashMap
- STL hashmap map hashtable
- iOS OC 快速创建 数组 字典
- UVA - 10192 Vacation
- CPU的常见故障及处理方法
- Excel2007设置自动保存
- 用Java实现颜色取色器的功能
- java中的Map、HashMap、HashTable
- Linux命令学习(21) Linux文件类型与扩展名
- JXL导出EXCEL合并单元格、文字对齐方式 .
- 笔记本怎样连接无线网络
- 互联网,本来就是一群自由人的自由联合。
- Linux学习
- Codeforces Round #277 (Div. 2) A,B,C,D,E
- AspCms 模拟limit执行从第N个开始调用数据
- outlook 如何设置自动回复