Java

Java19-6 Map

2019-01-16  本文已影响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();
    }
}
上一篇下一篇

猜你喜欢

热点阅读