
Java中Map接口用于存储键值对,根据键可以直接获取值,不允许键重复,值可以重复。实现该接口的类有HashMap、Hashtable、LinkedHashMap和TreeMap。
HashMap是最常用的Map实现,基于键的hashCode值存储数据,具有快速的访问速度。它最多只允许一条记录的键为null,不允许多条记录的值为null。HashMap不支持线程同步,可能导致数据不一致,若需要同步,可用Collections.synchronizedMap(HashMap map)方法。
Hashtable与HashMap类似,但不允许键和值为null,支持线程同步,因此在写入时较慢。
LinkedHashMap保留插入顺序,遍历时先得到的记录是先插入的,遍历速度比HashMap慢。它继承了HashMap的所有特性。
TreeMap根据键排序,默认升序,可指定比较器。遍历得到的记录是排序后的。键和值不能为空。
示例代码展示了如何初始化和输出Map的内容。如测试HashMap,可以插入键值对并输出。
遍历Map有两种方法:一种是通过keySet()方法获取键集合,再使用迭代器取出键并获取对应值;另一种是使用entrySet()方法获取记录集合,通过Map.Entry对象获取键和值。
示例代码还展示了如何清空Map、检查键值是否存在、删除键对应的记录以及获取记录数等操作。