Java19-6 Map

作者: 第二套广播体操 | 来源:发表于2019-01-16 15:29 被阅读0次

    Map:双列集合 不能拥有重复的键 一次存一对
    添加 v put(); 返回之前的v值 putAll(Map<K,V> map); 如果键相同会出现值覆盖
    删除 void clear(); v romve();
    判断 boolean containsKey(object); boolean containsValue(object); boolean isEmpty();
    获取 v get(); int size();


    public class Map_Test1 {
        public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<>();
         methodMap(map);
        }
        public static void methodMap(Map<Integer,String> map)
        {
            map.put(3,"yusongjiang1");
            System.out.println(map.put(3,"erhu"));//返回之前的v值
            map.put(6,"asdaxcds");
            map.put(2,"zxcdfsadw");
            System.out.println(map);
        }
    }
    

    结果

    map取出集合元素中的两种方式
    1、keyset();取出所有键并储存在set集合中 并用map.get();取出集合中的值

    //        keySet(); 取出所有的键,并存储到set集合中
            Set<String> keySet=map.keySet();
    //        将map转换成Set使用迭代器取出
            for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
                String key = iterator.next();
                String value=map.get(key);
                System.out.println(key+"-----"+value);
            }
    

    2.调用entrySet();

    //emtrySet();Map.Entry;其实就是一个Map接口中的一个内部接口
    
              Set<Map.Entry<String, String>> set=map.entrySet();
            for (Iterator<Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext(); ) {
                Map.Entry<String, String> next =  iterator.next();
                String key=next.getKey();
                String value=next.getValue();
                System.out.println(key+"....."+value);
    
            }
    

    例子

    public class Map_Test2 {
        public static void main(String[] args) {
            /*取出Map中所有的元素
            * map姓名---归属地*/
            Map<String,String> map=new HashMap<>();
            map.put("xiaoqiang","a1");
            map.put("xiaoming","a2");
            map.put("xiaoka","a3");
            map.put("xiaofu","a4");
    //        keySet(); 取出所有的键,并存储到set集合中
            Set<String> keySet=map.keySet();
    //        将map转换成Set使用迭代器取出
            for (Iterator<String> iterator = keySet.iterator(); iterator.hasNext(); ) {
                String key = iterator.next();
                String value=map.get(key);
                System.out.println(key+"-----"+value);
            }
    
    //emtrySet();Map.Entry;其实就是一个Map接口中的一个内部接口
    
              Set<Map.Entry<String, String>> set=map.entrySet();
            for (Iterator<Map.Entry<String, String>> iterator = set.iterator(); iterator.hasNext(); ) {
                Map.Entry<String, String> next =  iterator.next();
                String key=next.getKey();
                String value=next.getValue();
                System.out.println(key+"....."+value);
    
            }
        }
    }
    

    Map.Entry


    图片

    中的Map.Entry为接口内部接口

    //Map.Entry 内部接口类似演示
    interface MapEntry{
        public static interface Entry1{}
    }
    public class Map_EntryDemo implements MapEntry.Entry1 {
    
    }
    

    出现映射关系时,应该考虑使用Map集合

    //根据用户提供的汉语 返回英文
    public class Map_Test4 {
        public static void main(String[] args) {
    
         String s=getEnWeek("星期三");
            System.out.println(s);
        }
        public static String getEnWeek( String cnweek){
            Map<String,String> map=new HashMap<>();
            map.put("星期一","Monday");
            map.put("星期二","Tuesday");
            map.put("星期三","Wednesday");
            map.put("星期四","Thursday");
            map.put("星期五","Friday");
            map.put("星期六","Saturday");
            map.put("星期日","Sunday");
            return map.get(cnweek);
        }
    }
    
    
    //asdasawdsdwasdwq 获取字符串中每个字母出现的次数 要求结果格式为 a(2)b(1)c(3)
    public class Map_Test5 {
        public static void main(String[] args) {
            String s="asdasawdsdwasdwq";
            String out=sortString(s);
            System.out.println(out);
        }
    
        private static String sortString(String s) {
            char[] chars=s.toCharArray();
            Map<Character,Integer> map=new HashMap<>();
           /* for (int i = 0; i <chars.length; i++) {
                Integer value=map.get(chars[i]);
               if (value==null){
                   map.put(chars[i],1);
               }else {
                   System.out.println(value);
                   value++;
                   map.put(chars[i],value);
               }
            }*/
            for (int i = 0; i <chars.length; i++) {
                Integer value=map.get(chars[i]);
                int count=0;
                if (value!=null){
                    count=value;}
                    count++;
                map.put(chars[i],count);
            }
            return toString(map);
        }
        private static String toString(Map<Character, Integer> map) {
            StringBuilder sb=new StringBuilder();
             Set<Character> set=map.keySet();
            for (Iterator<Character> iterator = set.iterator(); iterator.hasNext(); ) {
                Character key = iterator.next();
                Integer value=map.get(key);
                sb.append(key+"("+value+")");
    
            }
            return sb.toString();
        }
    }
    

    相关文章

      网友评论

        本文标题:Java19-6 Map

        本文链接:https://www.haomeiwen.com/subject/isymdqtx.html