双列集合
MAP集合
java.util.Map
:Map接口,双列集合,一个元素包含Key与Value两个值,即键值对集合,二者数据类型不唯一,其中Key值唯一不可重复,Value值可重复,二者之间存在映射关系
常用方法
public V put(K key, V value)
: 把指定的键与指定的值添加到Map集合中。key不重复,v返回null;key重复,则替换value值,v返回被替换的value值public V remove(Object key)
: 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。无key则返回nullpublic V get(Object key)
: 根据指定的键,在Map集合中获取对应的值。无key则返回nullpublic boolean containsKey(object key)
:判断集合中是否包含指定的key,包含返回true,不包含返回false
遍历public Set<K> keySet()
: 获取Map集合中所有的键,存储到Set集合中。
Entry键值对对象public Set<Map.Entry<K,V>> entrySet()
: 获取到Map集合中所有的键值对对象的集合(Set集合)。
在Map接口中含有一个内部接口Entry:Map.Entry<K,V>;
当Map集合一创建,就会在Map集合中创建一个Entry对象,用来记录键值对对象,记录键与值的映射关系。
entrySet()方法将Map集合中的所有Entry对象取出存储到一个set集合中
- 通过entrySet方法遍历
- 使用entrySet()方法,将Map集合中的多个Entry对象取出存储到一个Set集合中
Set<Map.Entry<String , Integer>> set = map.entrySet();
- 遍历Set集合获取Entry对象
Iterator<Map.Entry<String,Integer>> it = set.iterator();
while(it.hasNext()){
Map.Entry<String,Integer> entry = it.next();
String key = entry.getKey();
Integer value = entry.getvalue();
System.out.println(key+"-"+value);
}
- 使用Entry对象的getKey与getValue获取键与值
MAP接口的实现类
- HashMap集合
基于哈希表的Map接口实现(多线程),无序集合不保证映射顺序
- 存储自定义类型键值对
Map集合保证Key值唯一,故作为key的元素数据类型,必须重写hashCode与equals方法,以保证key唯一,如:String类型
- LinkedHashMap集合
HashMap集合的子类,在HashMap底层为哈希表的前提下添加了一个链表,从而保证元素的迭代顺序,是一个有序的集合,存取元素的顺序一致 - Hashtable集合
实现一个非空元素的哈希表,不能存储空值空键,为key的元素对象必须实现hashcode与equals方法,是一个线程安全的集合(单线程)