zoukankan      html  css  js  c++  java
  • java 集合(五)MapDemo

    package cn.sasa.demo3;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.LinkedHashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class MapDemo {
        public static void main(String[] args) {
            /**
             * Map集合 类似于 C#中的 Dictionary,存的是键值对集合,键不能重复
             * 
             * Map接口的常用方法:
             * Map接口的实现类:HashMap
             */
            Map<Integer,String> map = new HashMap<Integer, String>();
            //添加
            map.put(1, "a");
            var preObj = map.put(1, "b");//重复的键保存的是后面那个,返回被替换的值
            var preObj1 = map.put(3, "a");
            map.put(4, "c");
            map.put(5, "u");
            map.put(6, "t");
            map.put(7, "e");
            System.out.println(preObj);    //a
            System.out.println(preObj1);  //null
            System.out.println(map);       //{1=b, 3=a, 4=c, 5=u, 6=t, 7=e}
            
            //取值
            String mapStr1 = map.get(4);
            //String mapStr1 = map.get(5); //如果不存在,返回null
            System.out.println(mapStr1);    //c
            
            //移除 返回被移除的对象
            String maprev = map.remove(3);
            System.out.println(maprev);     //a
            
            System.out.println("=========================");
            //遍历
            //1、调用keySet,将所有的键存到Set集合中
            //2、遍历Set集合
            Set<Integer> inSet = map.keySet();
            
            Iterator<Integer> it = inSet.iterator();
            while(it.hasNext()) {
                Integer key = it.next();
                String val = map.get(key);
                System.out.println(val);
            }
            
            System.out.println("=========================");
            for(var key : inSet) {
                System.out.println(map.get(key));
            }
            
            System.out.println("=========================");
            //entrySet获取的是Entry对象的Set集合, 映射关系对象
            //Entry是Map类中内部定义的一个接口 , 调用方式是Map.Entry
            //interface Entry<K, V> {
            Set<Map.Entry<Integer, String>> mset = map.entrySet();
            Iterator<Map.Entry<Integer, String>> itmap = mset.iterator();
            while(itmap.hasNext()) {
                Map.Entry<Integer, String> mapent = itmap.next();
                System.out.println(mapent.getKey() + "====" + mapent.getValue() );
            }
            
            System.out.println("=========================");
            for(Map.Entry<Integer, String> entry : map.entrySet()) {
                System.out.println(entry.getKey() + "----" + entry.getValue());
            }
            
            //=================LinkedHashMap================
            //LinkedHashMap:保证迭代的顺序
            LinkedHashMap<String, String> link = new LinkedHashMap<String, String>();
            link.put("sa", "class1");
            link.put("zz", "class2");
            link.put("sxxa", "class3");
            link.put("sacc", "class4");
            System.out.println(link);
        }
    }
  • 相关阅读:
    经典句子与段落点滴记录
    人生成功的六匹马(转自喷嚏网的一篇品书)
    Android 时间 更新与同步
    Camera driver&V4L2驱动架构介绍
    SimpleApp例子中网络的形成过程(转)
    Zigbee之旅(十):综合小实验——基于CC2430的温度监测系统(转)
    ZStack协议中命令的概念(转)
    Zigbee之旅(八):几个重要的CC2430基础实验——看门狗(转)
    Zigbee之旅(七):几个重要的CC2430基础实验——DMA传输(转)
    Zigbee之旅(六):几个重要的CC2430基础实验——ADC单次采样(转)
  • 原文地址:https://www.cnblogs.com/SasaL/p/10154056.html
Copyright © 2011-2022 走看看