1 Map集合的介绍

  • java.util.Map 集合,里面保存的数据是成对存在的,称之为双列集合。存储的数据,我们称为键值对。 之前所学的Collection集合中元素单个单个存在的,称为单列集合

    2 特点

  • Map K:键的数据类型;V:值的数据类型

  • 特点 :
    • 键不能重复,值可以重复
    • 键和值是 一 一 对应的,通过键可以找到对应的值
    • (键 + 值) 一起是一个整体 我们称之为“键值对” 或者 “键值对对象”,在Java中叫做“Entry对象”
  • 使用场景

    • 凡是要表示一一对应的数据时就可以Map集合
      • 举例 : 学生的学号和姓名 —- (itheima001小智)
      • 举例 : 夫妻的关系 —— (王宝强马蓉 ) (谢霆锋张柏芝)

        3 常用实现类

  • HashMap:

    • 此前的HashSet底层实现就是HashMap完成的,HashSet保存的元素其实就是HashMap集合中保存的键,底层结构是哈希表结构,具有键唯一,无序,特点。
  • LinkedHashMap:
    • 底层结构是有链表和哈希表结构,去重,有序
  • TreeMap:

    • 底层是有红黑树,去重,通过键排序

      4 常用的方法

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。

  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
  • public V get(Object key) 根据指定的键,在Map集合中获取对应的值。
  • public Set keySet(): 获取Map集合中所有的键,存储到Set集合中。
  • public boolean containKey(Object key):判断该集合中是否有此键。 /* Map中常用方法 :
    public V put(K key, V value): 把指定的键与指定的值添加到Map集合中
    public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值
    public V get(Object key) 根据指定的键,在Map集合中获取对应的值
    public Set keySet(): 获取Map集合中所有的键,存储到Set集合中
    public boolean containKey(Object key): 判断该集合中是否有此键。

    需求 : 将以下数据保存到Map集合中 , 进行测试以上方法
    “文章“  “马伊琍
    “谢霆锋”  “王菲”
    “李亚鹏”  “王菲”

    */
    public class MapDemo {
    public static void main(String[] args) {
    // 创建双列集合对象
    Map hm = new HashMap<>();

    1. // 添加元素<br /> // public V put(K key, V value): 把指定的键与指定的值添加到Map集合中<br /> hm.put("文章", "马伊琍");<br /> hm.put("谢霆锋", "王菲");<br /> hm.put("李亚鹏", "王菲");
    2. // public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值<br /> // System.out.println(hm.remove("谢霆锋"));
    3. // public V get(Object key) 根据指定的键,在Map集合中获取对应的值<br /> // System.out.println(hm.get("李亚鹏"));
    4. // public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中<br />// Set<String> set = hm.keySet();<br />// for (String key : set) {<br />// System.out.println(key);<br />// }
    5. // public boolean containKey(Object key): 判断该集合中是否有此键。<br /> // System.out.println(hm.containsKey("李亚鹏"));
    6. System.out.println(hm);// 打印集合 , 打印的是集合中的元素<br /> }<br />}

5 Map集合的遍历

第一种方式 : 键找值

例子:周瑜 — 小乔孙策 — 大乔刘备 — 孙尚香诸葛亮 — 黄月英
// 获取健集合
Set set = hm.keySet();
// 遍历健集合 , 通过键找值
for (String key : set) {
String value = hm.get(key);
System.out.println(key + “—-“ + value);
}

第二种方式 : 获取键值对对象 , 在找到键和值

/ 需求 : 创建Map集合对象 , 往集合中添加以下三对元素
使用获取Entry对象集合,在找到键和值 遍历集合
张无忌 — 赵敏
张翠山 — 殷素素
张三丰 — 郭芙
/
public class MapTest2 {
public static void main(String[] args) {
// 创建集合对象
Map hm = new HashMap<>();
// 添加元素
hm.put(“张无忌”, “赵敏”);
hm.put(“张翠山”, “殷素素”);
hm.put(“张三丰”, “郭芙”);

  1. // 获取键值对对象集合<br /> Set<Map.Entry<String, String>> set = hm.entrySet();
  2. // 遍历键值对对象集合 , 获取每一个键值对对象<br /> for (Map.Entry<String, String> entry : set) {<br /> // 通过entry对象获取键<br /> String key = entry.getKey();<br /> // 通过entry对象获取值<br /> String value = entry.getValue();<br /> System.out.println(key + "--" + value);<br /> }<br /> }<br />}