三、Map<K,V>接口
Map<K,V>接口中的元素是按照keyàvalue的形式保存。
Map<K,V>接口的子接口有:直接子接口SortedMap<K,V>和间接子接口NavigableMap<K,V>。
Map接口的子类:AbstractMap<K,V>、HashMap<K,V>、Hashtable<K,V>、Properties<Object,Object>。
Map接口的间接子类:TreeMap<K,V>、EnumMap<K extends Enum<K>,V>
HashMap<K,V>和HashTable<K,V>的区别:
(1) HashMap<K,V>是 JDK 1.2之后推出的新的操作类,而HashTable<K,V>是JDK 1.0时就推出的旧的操作类
(2) HashMap<K,V>采用异步处理,性能较高,但属于非线程安全,而HashTable<K,V>采用同步处理,性能较低,但属于线程安全
(3) HashMap<K,V>的元素允许null值,而HashTable<K,V>的元素不允许null值,否则将出现空指向异常
TreeMap子类是允许元素按照key进行排序的操作子类,并且key中的内容可以为任意的对象,但是要求对象所在的类必须实现Comparable接口。
Map集合的输出:
步骤:
(1)使用Map接口中的entrySet()方法将Map接口的全部内容变为Set集合
(2) 可以使用Set接口中定义的iterator()方法为Iterator接口进行实例化
实例化方法:用Set<E>(继承Collection接口)的public Iterator<E> iterator()方法
(3) 之后使用Iterator接口对象的方法进行迭代输出,每一次的迭代都可以取得一个Map.Entry的实例
(1).boolean hasNext()
(2).E next()
(4)通过Map.Entry进行key和value的分离
Map.Entry接口的分离方法:
(1)K getKey()
(2)V getValue()