前言
首先插入几个值方便操作
Map<Integer,String> map=new HashMap<>();
map.put(1,"A");
map.put(2,"B");
map.put(3,"C");
// System.out.println(map); ->{1=A, 2=B, 3=C}调用tostring
// 想得到具体实参要用以下操作
Key遍历
key遍历顾名思义就是查找map中key的值
ForEach遍历 要知道Map是不继承Collection的,严格意义来说他只是一个映射不能算作一个集合,所以无法用Foreach方法,但是为了方便Map内部的Foreach方法是应用了entrySet的(我们稍后再讲),而entrySet方法返回的是一个Set集合,所以能遍历
总的来说,可以直接使用Foreach方法,但底层不是Map在用,而是Set在用 不多说直接上代码
// 1.(Foreach遍历方法查找key和value)
map.forEach((key,value)-> System.out.println(key));
map.forEach((key,value)-> System.out.println(key+"->"+value));
增强for循环遍历(只读,不能进行remove等操作)
// 1.KeySet遍历(增强for循环遍历)
//
Set<Integer> set = map.keySet();
for(int key:set){
System.out.println(key);
}//增强for循环迭代
Value遍历
// 2.values
for(String value:map.values()){
System.out.println(value);
}
entrySet遍历 (最常用)
这里map.entrySet()返回的是Set集合,但是集合内部类型是Map.Entry接口的实现方法,对于每一个遍历的对象都是Entry类型的,而该对象有getKey方法和getvalue方法,极大便利了获取 map值操作
for(Map.Entry<Integer,String> entry: map.entrySet()){
System.out.println(entry.getKey()+"->"+entry.getValue());
}//同样只读
迭代 即可查找又可修改(神中神)
Iterator<Map.Entry<Integer, String>> iterator=map.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry<Integer,String> entry=iterator.next();
System.out.println(entry.getKey()+"->"+entry.getValue());
iterator.remove();
}