Map接口

  • 特点:存储一对数据(Key-Value),无序、无下标,键不可重复。

1. 常用方法:

  • V put(K key,V value)将对象存入到集合中,关联键值。key重复则覆盖原值。
  • Object get(Object key)根据键获取相应的值。
  • Set<K> keySet()//返回所有的key。
  • Collection<V> values()返回包含所有值的Collection集合。
  • Set<Map.Entry<K,V>> entrySet()键值匹配的set集合。效率高于ketSet()获取键值对。
  • Collection<V> values()返回此映射中包含的值的Collection视图。
  • remove(Object key)根据key删除映射关系。
  • int size()返回映射关系数。
  • putAll(Map <K key, V value>)将指定映射中的所有映射关系复制到此映射关系的集合中。
  • isEmpty()查看Map中是否为空。
  • boolean contains(Object o)查看是否包含指定元素。

2. 使用

public static void main(String[] args) {
  Map<String, Integer> map = new HashMap<String, Integer>();
  //1.添加元素
  map.put("tang", 21);
  map.put("he", 22);
  map.put("fan", 23);
  System.out.println(map.toString());
  //2.删除元素
  map.remove("he");
  System.out.println(map.toString());
  //3.遍历
  //3.1 使用keySet();
  for (String key : map.keySet()) {
    System.out.println(key + " " + map.get(key));
  }
  //3.2 使用entrySet();效率较高
  for (Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " " + entry.getValue());
  }
}

3. 实现类

  • HashMap【重点】

    • JDK1.2版本,线程不安全,运行效率快;允许用null作为key或是value。

    • 初始容量16,加载因子0.75。

    • 存储结构:哈希表 = 数组 + 链表 [+ 红黑树(JDK1.8+)]
  • Hashtable

    • JDK1.0版本,线程安全,运行效率慢;不允许null作为key或是value。
    • 初始容量11,加载因子0.75。
    • 这个集合在开发过程中已经不用了,稍微了解即可。
  • Properties

    • Hashtable的子类,要求key和value都是String。通常用于配置文件的读取。
    • 它继承了Hashtable的方法,与流关系密切。
  • TreeMap

    • 实现了SortedMap接口(是Map的子接口),可以对key自动排序。
    • 存储结构:红黑树。
Copyright © rootwhois.cn 2021-2022 all right reserved,powered by GitbookFile Modify: 2023-03-05 10:55:52

results matching ""

    No results matching ""