Java中map没有继承于Collection接口,有其单独的Map接口。
java.util.Collection的API中是这样介绍的‘The root interface in the collection hierarchy. A collection represents a group of objects, known as its elements.’顶层接口,包含一组元素。
java.util.Map的API中介绍如下‘An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.’键值对,不包含重复的键。
java集合框架不等同于Collection集合,集合框架的两个基本接口Collection、Map。
1、HashMap & HashTable
两者都实现了Map接口,继承于不同的抽象类,二者的主要区别是:同步、线程安全性、以及速度。
HashTable是同步的,故线程安全,HashMap不然。所以单线程程序中HashMap更快一些。
HashMap的一些常用方法
返回值 | 方法名 | 功能 |
---|---|---|
boolean | containsKey(Object key) | map是否包含这个key |
V | get(Object key) | 返回key对应的值,若不存在该key,返回null |
Set | keySet() | 返回所有key的一个set集 |
V | put(K key, V value) | 插入一个键值对 |
如果对一个键两次调用put方法,第二个值覆盖第一个值,返回第一个值。
2、TreeMap
TreeSet的底层采用TreeMap结构,TreeMap是基于红黑树实现