Map概述:
Interface Map<K,V> K:键的类型,V:值的类型 键值对
不能包含重复的键,每个键对应一个值
通过多态的方式创建集合对象,HashMap
//创建集合对象
Map<String,String> map = new HashMap<String, String>();
//添加元素
map.put("001","zhangsan");
map.put("002","lisi");
map.put("003","wangwu");
//输出集合对象
System.out.println(map);//{001=zhangsan, 002=lisi, 003=wangwu}
当存在重复的键时,值显示后插入的值(put:当键第一次出现为插入,第二次出现时为修改)
//创建集合对象
Map<String,String> map = new HashMap<String, String>();
//添加元素
map.put("001","zhangsan");
map.put("002","lisi");
map.put("003","wangwu");
map.put("002","xiaoming");
//输出集合对象
System.out.println(map);//{001=zhangsan, 002=xiaoming, 003=wangwu}
V put(K key,V value) 添加元素
V remove(Object key) 删除元素
void clean() 清空所有元素
boolean containsKey(Object key) 判断是否包含这个键
boolean containsValue(Object value)判断是否包含这个值
boolean isEmpty() 判断集合是否为空
int size() 返回集合的长度
//创建集合对象
Map<String,String> map = new HashMap<String, String>();
//添加元素
map.put("001","zhangsan");
map.put("002","lisi");
map.put("003","wangwu");
//输出集合对象
System.out.println(map);//{001=zhangsan, 002=xiaoming, 003=wangwu}
System.out.println(map.remove("001"));//zhangsan
System.out.println(map.containsKey("001"));//false
System.out.println(map.containsKey("002"));//true
System.out.println(map.containsValue("zhangsan"));//false
System.out.println(map.containsValue("lisi"));//true
System.out.println(map.isEmpty());//false
System.out.println(map.size());//2
V get(Object key)
Set keySet()
Collection values()
Map<String,String> map = new HashMap<String, String>();
map.put("3","艾佛森");
map.put("1","麦迪");
map.put("8","科比");
map.put("15","卡特");
System.out.println(map.get("1"));//麦迪
System.out.println(map.get("2"));//null
Set<String> set = map.keySet();
for(String s:set){
System.out.println(s);//1 3 15 8
}
Collection<String> col = map.values();
for (String s:col){
System.out.println(s);// 麦迪 艾佛森 卡特 科比
}
map的遍历
Map<String,String> map = new HashMap<String, String>();
map.put("3","艾佛森");
map.put("1","麦迪");
map.put("8","科比");
map.put("15","卡特");
Set<String> set = map.keySet();
for(String s:set){
System.out.println(s + ","+ map.get(s));
}
Map<String,String> map = new HashMap<String, String>();
map.put("3","艾佛森");
map.put("1","麦迪");
map.put("8","科比");
map.put("15","卡特");
//获取所有键值对对象的集合
Set<Map.Entry<String, String>> entries = map.entrySet();
for(Map.Entry<String, String> en :entries){
System.out.println(en.getKey() + "," + en.getValue());
}
统计字符串每个字母出现个数实例
public static void main(String[] args) {
//统计字符串每个字母出现个数实例
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个字符串");
String s = scanner.nextLine();
Map<Character,Integer> map = new HashMap<Character, Integer>();
int num = s.length();
for(int i = 0;i < num;i++){
char c =s.charAt(i);
if (map.containsKey(c)){
int num1 = map.get(c);
num1 += 1;
map.put(c,num1);
}else{
map.put(c,1);
}
}
Set<Map.Entry<Character, Integer>> enties = map.entrySet();
for(Map.Entry<Character, Integer> m : enties){
System.out.println(m.getKey() + "," + m.getValue());
}
}