HashTable HashMap TreeMap 区别
来源:互联网 发布:统计与自然语言java 编辑:程序博客网 时间:2024/04/29 17:01
java为数据结构中的映射定义了一个接口java.util.Map,而HashMap Hashtable和TreeMap就是它的实现类。Map是将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射一个一个值。
Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致。如果需要同步,可以用 Collections的synchronizedMap方法使HashMap具有同步的能力.
Hashtable 与 HashMap类似,但是主要有6点不同。
1.HashTable的方法是同步的,HashMap未经同步,所以在多线程场合要手动同步HashMap这个区别就像Vector和ArrayList一样。
2.HashTable不允许null值,key和value都不可以,HashMap允许null值,key和value都可以。HashMap允许 key值只能由一个null值,因为hashmap如果key值相同,新的key, value将替代旧的。
3.HashTable有一个contains(Object value)功能和containsValue(Object value)功能一样。
4.HashTable使用Enumeration,HashMap使用Iterator。
5.HashTable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap中hash数组的默认大小是16,而且一定是2的指数。
6.哈希值的使用不同,HashTable直接使用对象的hashCode。
import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; import java.util.Iterator; import java.util.Hashtable; import java.util.TreeMap; class HashMaps { public static void main(String[] args) { Map map=new HashMap(); map.put(“a”, “aaa”); map.put(“b”, “bbb”); map.put(“c”, “ccc”); map.put(“d”, “ddd”); Iterator iterator = map.keySet().iterator(); while (iterator.hasNext()) { Object key = iterator.next(); System.out.println(“map.get(key) is :”+map.get(key)); } Hashtable tab=new Hashtable(); tab.put(“a”, “aaa”); tab.put(“b”, “bbb”); tab.put(“c”, “ccc”); tab.put(“d”, “ddd”); Iterator iterator_1 = tab.keySet().iterator(); while (iterator_1.hasNext()) { Object key = iterator_1.next(); System.out.println(“tab.get(key) is :”+tab.get(key)); } TreeMap tmp=new TreeMap(); tmp.put(“a”, “aaa”); tmp.put(“b”, “bbb”); tmp.put(“c”, “ccc”); tmp.put(“d”, “ddd”); Iterator iterator_2 = tmp.keySet().iterator(); while (iterator_2.hasNext()) { Object key = iterator_2.next(); System.out.println(“tmp.get(key) is :”+tmp.get(key)); } } }
- HashTable HashMap TreeMap 区别
- HASHTABLE, HashMap,TreeMap区别
- HASHTABLE, HashMap,TreeMap区别
- HashMap HashTable TreeMap区别
- HashMap、TreeMap、HashTable区别
- HashMap,LinkedHashMap,HashTable,TreeMap 区别
- hashMap hashTable TreeMap linkedHashMap区别
- Hashtable ,TreeMap ,HashMap ,LinkedHashMap 区别
- HashMap HashTable TreeMap的区别
- HashMap、TreeMap、Hashtable、LinkedHashMap区别
- Hashtable、HashMap和TreeMap区别
- HashMap, TreeMap, Hashtable的区别
- HashMap TreeMap Hashtable LinkedHashMap 区别
- HashMap,LinkedHashMap,TreeMap,HashTable区别
- Map/hashMap、treeMap、hashtable区别、、
- Collection,Map,HashMap,hashTable,TreeMap,List区别
- HashMap Hashtable LinkedHashMap 和TreeMap区别
- Collection,Map,HashMap,hashTable,TreeMap,List区别
- jQuery——jQuery基础方法first()/last()/not(CSS选择器)/even/odd/eq(index)/gt(index)/lt(index)
- 写样式时不要图一时省事而忽略背景色的声明
- android 关于jni调用出错的那些事
- Android APK软件修改教程,由odex文件生成classes.dex
- java数据库基本操作
- HashTable HashMap TreeMap 区别
- uva 10131 大象。
- 多路RTSP播放器直播与点播技术实现
- XP中打开组策略对象编辑器提示“MMC无法创建管理单元”解决方案
- memcached服务的集群和session支持
- Hibernate的对象的三种状态
- MPMoviePlayerController 电影播放器—IOS开发
- 谈谈我对百度广告管家的一些看法
- jquery通过name绑定单击事件