Map集合简单了解(水一章 明天Stream流)

Map
    Map集合的概述和使用
    双列集合一次可以存两个元素  左边称为键,唯一的,右边称为值,可以重复的。对应的关系,称之为键值对
    Interface Map<K,V>  K:键的数据类型  V:值得数据类型
    键不能重复,值可以重复
    键和值是一一对应得,每一个键只能找到自己对应得值
    (键+值)这个我们称之为"键值对"或者"键值对对象",在Java中叫做"Entry对象"
    例如 学号和学生  一个学号对应一个学生
    多态得方式创建
    Map得基本使用
    

public class mapTest {
        /*
        Map得基本使用
            */
        public static void main(String[] args) {
            Map<String, String>  m=new HashMap<>();
            //添加方法  put
            m.put("zhangsan","123");
            m.put("lisi","456");
            m.put("wangwu","789");
            System.out.println(m);
        }


    
    Map得常用方法
    V put(K key,V value)   添加元素
    V remove(Object key)     根据键删除键值对元素
    void clear()             移除所有键值对元素
    boolean containsKey(Object key)判断集合是否包含指定得键
    boolean containsValue(Object value)判断集合是否包含指定得值
    boolean isEmpty()判断集合是否为空
    int size 集合得长度,也就是集合中键值对得个数
    

public class mapTest {
        /*
        Map得基本使用
        */
        public static void main(String[] args) {
            Map<String, String>  m=new HashMap<>();
            //添加方法  put
            //如果要添加得键不存在,那么就会把键值对都添加到集合中
            //如果要添加得键不存在得,那么会覆盖原来得值,把原来得值作为返回值进行返回
            m.put("zhangsan","123");
            m.put("lisi","456");
            m.put("wangwu","789");
            System.out.println(m);
    
            String zhangsan = m.put("zhangsan", "26");
            System.out.println(zhangsan);
            System.out.println(m);
            //删除
            String zhangsan1 = m.remove("zhangsan");
            System.out.println(zhangsan1);
            System.out.println(m);
            //清空
            m.clear();
            System.out.println(m);
            //containskey  判断集合是否包含指定得键
            boolean zhangsan2 = m.containsKey("zhangsan");
            System.out.println(zhangsan2);//true
            //containsvalue 判断集合是否包含指定得值
            boolean b = m.containsValue("123");//true
            boolean b1 = m.containsValue("999");//false
            //判断集合是否为空
            boolean empty = m.isEmpty();
            System.out.println(empty);//返回的值为布尔值
    
            //size  返回得是键值对得个数
            int size = m.size();
            System.out.println(size);
        }
    }


    Map得第一种遍历集合方式  
    Set<K>  keySet() 获取所有键得集合
    V get(Object key) 根据键获取值
    代码:
    public class mapTest {
            public static void main(String[] args) {
                //获取并添加元素
                Map<String, String>  m=new HashMap<>();
                m.put("a","1");
                m.put("b","2");
                m.put("c","3");
                //获取到所有得键
                Set<String> key = m.keySet();
                //i遍历set集合得每一个键
                for (String string : key) {
                    //遍历每一个key,来获取到每一个值
                    String value = m.get(string);
                    System.out.println(string+"     "+value);
                }
            }
        }
    第二种遍历方式
    Set<Map.Entry<K,V>>entrySet() 获取键值对对象得集合
    K getkey() 获取键
    V getValue() 获取值
    代码:
    

public class mapTest {
            public static void main(String[] args) {
                //获取并添加元素
                Map<String, String>  m=new HashMap<>();
                m.put("a","1");
                m.put("b","2");
                m.put("c","3");
                //获取到所有得键
                //        Set<String> key = m.keySet();
                //        //i遍历set集合得每一个键
                //        for (String string : key) {
                //            //遍历每一个key,来获取到每一个值
                //            String value = m.get(string);
                //            System.out.println(string+"     "+value);
                //        }
                // 获取到所有得键值对对象
                //Set集合种装的是键值对对像(Entry对象)
                //而Entry里面装的是键值对
                Set<Map.Entry<String, String>> entries = m.entrySet();
                for (Map.Entry<String, String> entry : entries) {
                    //得到每一个键值对对象
                    String key = entry.getKey();
                    String value = entry.getValue();
                    System.out.println(key+"    "+value);
                }
        
            }


            
        第三种遍历方式
        

public class mapTest {
            public static void main(String[] args) {
                //获取并添加元素
                Map<String, String>  m=new HashMap<>();
                m.put("a","1");
                m.put("b","2");
                m.put("c","3");
                //获取到所有得键
                //        Set<String> key = m.keySet();
                //        //i遍历set集合得每一个键
                //        for (String string : key) {
                //            //遍历每一个key,来获取到每一个值
                //            String value = m.get(string);
                //            System.out.println(string+"     "+value);
                //        }
                // 获取到所有得键值对对象
                //Set集合种装的是键值对对像(Entry对象)
                //而Entry里面装的是键值对
                //        Set<Map.Entry<String, String>> entries = m.entrySet();
                //        for (Map.Entry<String, String> entry : entries) {
                //            //得到每一个键值对对象
                //            String key = entry.getKey();
                //            String value = entry.getValue();
                //            System.out.println(key+"    "+value);
                //        }
                m.forEach((String key,String value)->
                {
                    System.out.println(key+"    "+ value);
                });
            }
        }


    HashMap得特点:
        HashMap是Map里边得一个实现类
        没有额外需要了解得方法,直接用Map得方法就好
        HashMap跟HashSet底层一样是哈希表结构
        依赖hashCode方法和equals方法保证键唯一
        如果键要存储自定义对象,需要重写hashCode和equals方法
    TreeMap得特点
        TreeMap是Map里边得一个实现类
        没有额外需要了解得方法,直接用Map得方法就好
        TreeMap跟TreeSet一样底层是红黑树结构得
        依赖自然排序或者比较器排序,对键进行排序
        如果键是自定义对象,需要实现Comparable接口或者创建TreeMap对象时候给出比较器排序规则
    
    可变参数
            就是形参得个数是可变的
        格式:
            修饰符 返回值类型 方法名(数据类型...变量名){}
        范例:public static    int sum(int...a){}
        这里得变量也就是一个数组
        

public class test6 {
        public static void main(String[] args) {
            int getsum = getsum(1,2,3,4,5);
            System.out.println(getsum);
        }
    
        private static int getsum(int...arr) {
            int sum=0;
            for (int i = 0; i < arr.length; i++) {
                sum=sum+arr[i];
            }
            return sum;
        }
    }


    注意:如果一个方法包含多个参数,可变参数要放到最后

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值