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);
}