分享

集合-Map 接口

 印度阿三17 2019-10-29
1. 概述   java.util.Map <K,V>接口是一个顶层接口,里面存放的数据单元是:单对元素;
  • K 表示 描述的键 的类型,Key 的类型;

  • V 表示 描述的值 的类型,Value的类型;

  • Map就是用于存放 Key-Value 键值对 的集合;

  • Map集合中,Key不允许重复,并且 一个Key只能对应一个Value;

           Map接口的主要实现类: HashMap类 (哈希表数据结构) TreeMap类 (红黑树)   2. 常用方法 Map <K,V>   V put(K key, V value) -将参数指定的key 和 value组成一个完整键值对,放入集合。 - 若集合中之前没有该key值,则返回null。 -否则返回之前key值对应的value值。     V remove(Object key) -删除参数指定key对应的键值对,返回key对应的value值 boolean containsKey(Object key) -用于判断参数指定的key值是否存在 boolean containsValue(Object value) -用于判断参数指定的value是否存在 V get(Object key) -用于获取参数key对应的value值   Set<Map.Entry<K, V>> entrySet( ) -用于获取Map集合的Set视图 K getKey( ) -用于获取调用对象的key值 V getValue( ) -用于获取调用对象的value值 Set<K> keySet( ) -获取Map集合中 key的Set视图   代码:
package com.monkey1024.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class MapTest {

    public static void main(String[] args) {
        
        // 定义一个接口类型的引用指向 实现类的对象,形成多态
        Map<String,String> m1=new HashMap<String,String> ();
        
        //操作1: 向集合中添加元素
        String val = m1.put("1", "one");
        System.out.println("1.向集合中添加元素(\"1\", \"one\"): " val);    //null
        
        val=m1.put("2", "two");
        System.out.println("1.向集合中添加元素(\"2\", \"two\"): " val);  //null
        
        val=m1.put("3", "three");
        System.out.println("1.向集合中添加元素(\"3\", \"three\"): " val);  //null
        
        System.out.println();
        
        // 操作2:若键值对已经存在,相当于修改value的效果
        val= m1.put("1", "eleven");
        
        System.out.println("2.向集合中添加元素(\"1\", \"eleven\")");
        System.out.println("若键值对已经存在,否则返回之前key值对应的value值");
        System.out.println("打印value值:  " val);
        
        System.out.println();
        
        
        // 操作3:判断key值为 "1"的元素 是否存在
        
        boolean b = m1.containsKey("1");
        System.out.println("3.判断key值为 \"1\"的元素 是否存在: " b);
        System.out.println();
        
        
         // 操作4:判断value值为 "two"的元素 是否存在
         b = m1.containsValue("two");
         System.out.println("4.判断value值为 \"two\"的元素 是否存在: "  b);
         System.out.println();
         
         // 操作5:获取 key值为 "3",对应的 value值
         String str = m1.get("3");
         System.out.println("5.获取 key值为 \"3\",对应的 value值: " str);
         System.out.println();
         
         // 操作6: 删除key值为"3"元素对应的值
         String remove = m1.remove("3");
         System.out.println("6.删除key值为\"3\"元素对应的值: " remove);
         System.out.println();
         
         
         // 操作7: 将Map转换为 Set,得到 Set的视图
         Set<Map.Entry<String, String>> s1 = m1.entrySet();
         System.out.println("7.将Map转换为 Set,得到 Set的视图: " s1);
         System.out.println();
         
         // 操作8:打印Set视图  中的每一个元素的 key 和 value
         for(Map.Entry<String, String> me:s1) {
             System.out.println("8.将Map转换为 Set,得到 Set的视图: " me.getKey() "," me.getValue());
         }
         System.out.println( );
         
         // 操作9: 获取map中的key组成的Set视图
         Set<String> s2 = m1.keySet();
         System.out.println("9.获取map中的key组成的Set视图: " s2);
         System.out.println();
         
         // 操作10:打印集合中的所有key 和 value
         for(String s:s2) {
             System.out.println("10.打印集合中的所有key 和 value: " s "," m1.get(s));
             
         }
         

    }

}
结果:
1.向集合中添加元素("1", "one"): null
1.向集合中添加元素("2", "two"): null
1.向集合中添加元素("3", "three"): null

2.向集合中添加元素("1", "eleven")
若键值对已经存在,否则返回之前key值对应的value值
打印value值:  one

3.判断key值为 "1"的元素 是否存在: true

4.判断value值为 "two"的元素 是否存在: true

5.获取 key值为 "3",对应的 value值: three

6.删除key值为"3"元素对应的值: three

7.将Map转换为 Set,得到 Set的视图: [1=eleven, 2=two]

8.将Map转换为 Set,得到 Set的视图: 1,eleven
8.将Map转换为 Set,得到 Set的视图: 2,two

9.获取map中的key组成的Set视图: [1, 2]

10.打印集合中的所有key 和 value: 1,eleven
10.打印集合中的所有key 和 value: 2,two

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多