双列集合

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则返回null
  • public V get(Object key): 根据指定的键,在Map集合中获取对应的值。无key则返回null
  • public 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方法遍历
  1. 使用entrySet()方法,将Map集合中的多个Entry对象取出存储到一个Set集合中
    Set<Map.Entry<String , Integer>> set = map.entrySet();
  2. 遍历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);
}
  1. 使用Entry对象的getKey与getValue获取键与值

MAP接口的实现类

  • HashMap集合
    基于哈希表的Map接口实现(多线程),无序集合不保证映射顺序
  • 存储自定义类型键值对
    Map集合保证Key值唯一,故作为key的元素数据类型,必须重写hashCode与equals方法,以保证key唯一,如:String类型
  • LinkedHashMap集合
    HashMap集合的子类,在HashMap底层为哈希表的前提下添加了一个链表,从而保证元素的迭代顺序,是一个有序的集合,存取元素的顺序一致
  • Hashtable集合
    实现一个非空元素的哈希表,不能存储空值空键,为key的元素对象必须实现hashcode与equals方法,是一个线程安全的集合(单线程)