字典以键值对的形式存储引用数据类型。
体系:
Map(接口):
Map以键值对存储数据,其中键不允许重复,底层是Set(Set的底层是Map,二者互为底层。)
HashMap:
HashMap是jdk1.2提供的,主要特点有:
- 键或值允许为null
- 键不能重复
- 判断键是否重复使用键的hashCode进行对比,如果hashCode一致,则调用equals判断键是否重复。
- 线程不安全
Hashtable
Hashtable是jdk1.0提供的,主要有以下特点。
- 键或值不能为null
- 键不能重复
- 判断键是否重复使用键的hashCode进行对比,如果hashCode一致,则调用equals判断键是否充分福
- 线程不安全
TreeMap
使用TreeMap存储数据要求可以具有比较性或者创建TreeMap时传入比较器。
常用方法
增/改
1.在Map中添加数据,如果是添加数据,返回值为null,如果修改了某个key对应的value,则返回值就是修改之前的value
V put(K k,V v);
由于Map中Key不允许重复,如果调用两次put方法,针对同一个Key进行操作,第二次将会修改这个Key对应的Value;如:
put("first",new String("1"))
put("first",new String("2"))
经过两次put操作,"first"对应的值为"2";
2.给Map批量添加数据
void putAll(Map<? extends K,? extends V> m);
删
1.删除指定key对应的数据,返回值是被删除的键对应的值。
V remove(K k);
2.清空整个Map
void clear();
查
1.查询某个键对应的值,返回值就是key对应的value,如果Map中不存在这个key,则返回null
V get(K k);
2.判断字典中是否存在空字典
boolean isEmpty();
3.判断Key是否存在
boolean containsKey(K k);
4.判断值是否存在
boolean containsValue(V v);
5.获取字典中所有key的集合
Set<k> keySet();
6.获取字典中所有值的集合
Collection<V> values();
7.获取字典中所有键值对的集合
Set<Map.Entry<K,V>> entrySet();