一、Map接口常用方法
- public V put(K key,V value):向集合中保存数据;
- public V get(Object key):根据key查找对应的value数据;
- public Set<K> keySet():取出全部的key,返回一个set集合;
- public Set<Map.Entry<K,V>> entrySet():将Map集合转化为set集合;
二、常用子类
1、public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable
是JDK1.2时推出的,基于哈希表实现的映射接口。此实现提供所有可选映射操作,并允许空值和空键。采用异步处理,非线程安全。该类不保证映射的顺序;特别是,它不能保证顺序会随着时间保持不变。
2、public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, Serializable
是JDK1.0时推出的,这个类实现了一个哈希表,它将键映射到值。任何非空对象都可以用作键或值(不允许空值和空键)。采用同步处理,线程安全。
3、public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V>
哈希表和链表实现了Map接口,具有可预测的迭代顺序。这个实现与HashMap的不同之处在于,它维护一个运行于所有条目中的双链表。这个链表定义了迭代顺序,这通常是键插入到映射中的顺序(插入顺序)。注意,如果一个键被重新插入到映射中,插入顺序不会受到影响。
4、public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, Serializable
一个基于红黑树的NavigableMap实现。映射是根据其键的自然顺序排序的,或者由在创建映射时提供的比较器进行排序,这取决于使用的是哪个构造函数。
三、使用情况
当要实现插入、删除、查询时,使用HashMap;当要实现按(自然、自定义)顺序遍历时,使用TreeMap;当要实现按输入输出顺序遍历时,使用LinkedHashMap。
原文地址:https://www.cnblogs.com/crush-u-1214/p/11379470.html