-
public interface Map<K,V>映射键到值的对象。一张Map不能包含重复的键,每个键可以映射到至多一个值。 -
K--键 V---值 由键得到值,键不能重复,值可以重复,把这一对数据(键和值)统称为键值对
- 。一个映射是由多个键值对组成的
为了方便操作键和值,就把键值对抽取成了一个类--Map.Entry,Entry对象都是具体的键值对,一个映射可以有多个Entry对象组成
public static void main(String[] args) { //创建映射对象 Map<String, Integer> map=new HashMap<>(); //添加元素 map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); //重复键--覆盖 //map.put("a", 6); //判断映射是否包含键 System.out.println(map.containsKey("c")); //true //判断是否包含值 System.out.println(map.containsValue(7)); //false //把映射中的键值对(Entry对象)存放Set集合中进行返回 //Set<Map.Entry<String, Integer>> s=map.entrySet(); //根据键获取值---键不存在返回null System.out.println(map.get("u")); //null //返回的把所有的键存放到Set集合中 Set<String> set=map.keySet(); //根据键删除键值对 map.remove("a");//{b=2, c=3, d=4} System.out.println(map); //删除键值对 //同时满足才能删除 map.remove("u", 3);//{b=2, c=3, d=4} System.out.println(map); //把映射的所有值存储到一个集合中进行返回 Collection<Integer> c=map.values(); //为什么上面用的是Set还这里还有个Collection,因为Set具有唯一性,所以用来存放key值刚刚好,key值也具有 //不可重复性 System.out.println(map); //{b=2, c=3, d=4} }
根据键遍历映射
public static void main(String[] args) { ////创建映射对象 Map<String, Integer> map=new HashMap<>(); //添加元素 map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); //1.获取映射中所有的键 Set<String> set=map.keySet(); //遍历键 //增强for循环 for (String string : set) { //由键获取指定值 System.out.println(string+"="+map.get(string)); } }
根据键值对获取对应的键和值
public static void main(String[] args) { // 创建映射对象 Map<String, Integer> map = new HashMap<>(); // 添加元素 map.put("a", 1); map.put("b", 2); map.put("c", 3); map.put("d", 4); //2.获取所有的键值对 /*Set<Map.Entry<String, Integer>> set=map.entrySet(); //遍历所有的键值对---遍历Set集合 for (Entry<String, Integer> entry : set) { //每个entry就是具体的entry对象就是具体的键值对 System.out.println(entry.getKey()+"="+entry.getValue()); }*/ //开发中 for(Map.Entry<String, Integer> entry:map.entrySet()){ //每个entry就是具体的entry对象就是具体的键值对 System.out.println(entry.getKey()+"="+entry.getValue()); } }
获取到一个字符串每个字符出现的次数
public static void main(String[] args) { //字符串 String str="wehiugibI" ; //创建映射对象-----键代表字符 值代表字符出现的次数 Map<String,Integer>map=new HashMap<>(); //遍历字符串 for(int i=0;i<str.length();i++) { //获取到每个字符 //判断要存入的映射的字符是否已经包含了 char c=str.charAt(i); if(map.containsKey(c+"")) { //获取上一个这个键对应的值再加1 map.put(c+"",map.get(""+c)+1); } else { map.put(c+"",1); } } //遍历映射 for (Map.Entry<String,Integer>entry:map.entrySet()) { //每个entry就是具体的entry对象就是具体的键值对 System.out.println(entry.getKey()+"="+entry.getValue()); } }
b=1
e=1
u=1
w=1
g=1
h=1
i=2
I=1