HashMap 、LinkedHashMap、HashTable、TreeMap 和 Properties 的区别

HashMap
1、线程不安全;

2、允许null value 和 null key;

3、访问效率比较高;

4、Java1.2引进的Map接口的一个实现;

5、轻量级;

6、根据键的HashCode()值存储数据的位置;

7、遍历时,取得的数据的顺序是完全随机的;

8、最多允许一条记录的键为空;

9、允许多条记录的值为空;

10、在Map中插入、删除和定位元素,HashMap是较好的选择;

LinkedHashMap
1、保存了记录的插入顺序;

2、可以按照插入顺序或应用次数排序;

3、如果需要按照输入和输出的顺序相同,用LinkedHashMap;

HashTable
1、支持线程的同步,线程安全的一个Collection;

2、不允许有null value 和 null key;

3、效率低下;

4、继承于Dictionnary类;

5、比Hashmap老;

TreeMap
1、实现SortedMap接口;

2、能将保存的记录根据键排序,默认升序排序;

3、如果要按自然顺序方式或自定义顺序遍历键,用TreeMap;

Properties
1、用于配置文件的定义和操作,使用频率比较高;

2、键和值都是字符串;

时间: 2024-10-10 00:18:22

HashMap 、LinkedHashMap、HashTable、TreeMap 和 Properties 的区别的相关文章

hashMap与 hashTable , ArrayList与linkedList 的区别(详细)

ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点就是插入删除时非常麻烦LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引 但是缺点就是查找非常麻烦 要丛第一个索引开始 Hashtable和HashMap类有三个重要的不同之处.第一个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现. 也许最重要的不同是Hashtable的方

Map...---HashMap和Hashtable的区别-----...LinkedHashMap

*Map接口不是Collection接口的子接口 *Map存放数据的方式采用键值对的方式,类似与生活中目录(键)和内容(值) *常见的实现类: * HashMap**:采用键-值对的方式进行存放. * 键(键的集合是就是set集合):唯一,无序,如果键重复,将发生覆盖 * 值:无序 不唯一(Collection) * 构造函数: * HashMap() 构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap. * HashMap(int initialCapaci

Android——ArrayList 、LinkList、List 区别 & 迭代器iterator的使用 & HashMap、Hashtable、LinkedHashMap、TreeMap

ArrayList .LinkList.List 区别 & 迭代器iterator的使用 & HashMap.Hashtable.LinkedHashMap.TreeMap 一.几个List类型 1.大学数据结构中ArrayList是实现了基于动态数组的数据结构,LinkList基于链表的数据结构. 2.对于随机访问get和set,ArrayList优于LinkList,因为LinkedList要移动指针. 3.对于新增和删除操作add和remove,LinkList比较占优势,因为Arr

HashMap、HashTable、LinkedHashMap和TreeMap用法和区别

Java为数据结构中的映射定义了一个接口java.util.Map;它有四个实现类,分别是HashMap Hashtable LinkedHashMap 和TreeMap Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复. HashMap就是一张hash表,键和值都没有排序: TreeMap以红-黑树结构为基础,键值按顺序排列: LinkedHashMap保存了插入时的顺序: Hashtable是同步的(而HashMap是不同步的).所以如果在线程安全的环境下应该多使用HashM

HashMap、HashTable、LinkedHashMap、TreeMap使用和区别

1.HashMap继承AbstractMap 实现Map接口,Map在java.util包中是独立的接口,不是继承Collection接口,继承Collection接口的有: /** * @see Set * @see List * @see Map * @see SortedSet * @see SortedMap * @see HashSet * @see TreeSet * @see ArrayList * @see LinkedList * @see Vector * @see Coll

Java集合框架(五)—— Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap

Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key放在一起看

Java中的集合Map、HashMap、Hashtable、Properties、SortedMap、TreeMap、WeakHashMap、IdentityHashMap、EnumMap(五)

Map Map用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的key,另一组值用于保存Map里的value,key和value都可以是任何引用类型的数据.Map的key不容许重复,即同一个Map对象的任何两个key通过equals方法比较总是返回false. key和value之间存在单向一对一关系,即通过指定的key,总能找到唯一的.确定的value.从Map中取出数据时,只要给出指定的key,就可以取出对应的value. 如果把Map里的所有key放在一起看

HashMap,LinkedHashMap,TreeMap的区别(转)

Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复.Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的.HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写HashMap;可能会导致数据的不一致.如果需要同步,可以用 Collections的synchronizedM

【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别

原文网址:http://www.360doc.com/content/15/0427/22/1709014_466468021.shtml java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别. 经常会看到程序中使用了记录集,常用的有Collection.HashMap.HashSet.ArrayList,因为分不清楚它们之间的关系,所以在使用时经常会混淆,以至于不知道从何下手.在这儿作了一个小例