Map

1.概述

  • interface Map <K,V> k:键的类型 V:值的类型
  • 不能包含重复的键,每个键映射到最多一个值

2.HashMap

添加的函数为o.put()

Map<String, String> map= new HashMap<String, String>();
map.put("it001","知识");
map.put("it002","zss");
map.put("it002","zssss");//此时的it002被重写为zssss
  System.out.println(map);

3.Map集合的基本功能

方法名

说明

V put(K key, V value)

添加

V remove(Object key)

根据键删除键值对应的元素

void clear()

移除所有的键值对

boolean containsKey(O key)

判断集合是否含有指定的键

boolean containsValue(O value)

判断集合是否包含指定的值

int size()

集合的长度

4.Map集合的获取功能

方法名

说明

V get(O key)

根据键值获取

Set KeySet()

获取所有键的集合

Collection values()

获取所有值的集合

Set<Map.Entry<K,V>> entrySet()

获取所有键值对对象的集合

Set<String> keySet=map.KeySet();
for(String key:keySet){
    System.out.println(key);
}
Collection<String> value=map.values();
for(String v:value){
    System.out.println(v);
}
Set<Map.Entry<String,String>> sm=map.entrySet();
for( Map.Entry<String,String> mi:sm){
    String key1=mi.getKey();
    String value1=mi.getValue();
}

4. 集合嵌套之ArrayList嵌套

ArrayList<HashMap<String,String>> array=new ArrayList<HashMap<String,String>>();
//创建hashmap集合 并添加键值对元素
HashMap<String,String> map=new HashMap<String,String>();
map.put("01","大桥");
map.put("02","小乔");
array.add(map);
HashMap<String,String> map1=new HashMap<String,String>();
map1.put("03","S桥");
map1.put("04","6乔");
array.add(map1);

for(HashMap<String,String> hm:array){
   Set<String> getkey=hm.keySet();
   for(String key:getkey){
     String values2=hm.get(key);
     System.out.println(key+' '+values2);
   }
}

5. 集合嵌套之HashMap嵌套

HashMap<String,ArrayList<String>> hm=new HashMap<String,ArrayList<String>>();
        ArrayList<String> s = new ArrayList<>();
        s.add("诸葛亮");
        s.add("刘备");
        hm.put("三国",s);

        ArrayList<String> s1 = new ArrayList<>();
        s1.add("贾宝玉");
        s1.add("林黛玉");
        hm.put("红楼梦",s1);
        
        Set<String> set=hm.keySet();

        for(String key:set){
            for(String valuee:hm.get(key)){
                System.out.println(key+' '+valuee);
            }
        }

6. 统计字符串中每个字符出

System.out.println("请输入字符串");
        String s=new String();
        Scanner sc=new Scanner(System.in);
        s=sc.nextLine();

        HashMap<Character,Integer> hm=new HashMap<Character,Integer>();
        for(int i=0;i<s.length();i++){
            char key = s.charAt(i);
            Integer value = hm.get(key);

            if(value==null){
                hm.put(key,1);
            } else{
                value++;
                hm.put(key,value);
            }
        }

        StringBuilder sb=new StringBuilder();
        Set<Character> characters = hm.keySet();
        for(Character key:characters){
            Integer value=hm.get(key);
            sb.append(key).append("(").append(value).append(")");
        }
        System.out.println(sb);

    }