Java之Map接口

    Map 集合是用来存储 “键(K)-(V)”映射对的集合。它是一个接口。它的实现类中,存储“键(K)-(V)”映射对是通过键来唯一标识,Map 底层的“键(K)”是用Set来存放的。所以自定义的类,存放在Map的实现类中,需要重写hashCode equals 方法。

      常用的实现类:HashMapTreeMapHashTable

HashMapHashTableTreeMap的区别:

HashMap1、线程不安全的,不同步的

2、能最多存储一个null键,任意多个null

3、有containsKey(),containsValue()方法,没有contains() 方法

3、继承AbstractMap<K,V>

Hashtable1、线程安全的,同步的。

2、不能有null也不能有null,否则运行时出空指针异常;

3基于陈旧的Dictionary<K,V> ,contains() 方法,用于测试此映射表中是否存在指定值,等同于HashMap类中的containsValue()(本类中也有)

TreeMap:线程不安全的,不同步的。存入的元素的Key,必须是“可比较的”,因为它的key底层使用TreeSet来实现的,即存入的元素必须实现java.lang.Comparable<T>接口,或者是在创建TreeMap对象是指定一个实现java.util.Comparator<T>接口比较器。参考文档JDK API 1.6

Map接口中定义的方法(只列举常用的):

booleancontainsKey(Object key):判断集合Key中是否包含传入的key.

booleancontainsValue(Object value): 判断集合value中是否包含传入的value值。

V get(Object key):根据key得到指定的值。

boolean isEmpty():判断集合是否为空。

V put(K key, Vvalue):将键-值对存入集合中,返回的是value类型的旧值。如果原先没有值,会返回null

V remove(Objectkey):删除指定的键-值对

int size():返回集合的大小。

void clear():清空集合中的所用内容。

Set<K> keySet();//返回Key的集合,用于遍历Map集合。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章