1.只需要取key值。
for (T cv: map.keySet()){
System.out.println(cv);
}
2.只需要取value值
for (Integer cv: map.values()){
System.out.println(cv);
}
3.高效率遍历map,遍历中不可以修改
for( Map.Entry<Integer,Integer> entry : map.entrySet())
{
System.out.println(entry.getKey());
System.out.println(entry.getValue());
}
- 注意:不可以在遍历内部修改原map结合,否则会ConcurrentModificationException的错误。
4. 迭代器模式遍历,可以边遍历边修改
class Main{
public static void main(String[] args) {
HashMap<Integer,Integer> map = new HashMap<>();
map.put(1,34);
map.put(2,33);
Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext())
{
Map.Entry<Integer, Integer> next = iterator.next();
iterator.remove();
System.out.println(next.getValue());
}
System.out.println(map.size());
}
}
5.forEach()可以结合lambda表达式,写法简洁
import java.util.HashMap;
class Main{
public static void main(String[] args) {
HashMap<Integer,Integer> map = new HashMap<>();
map.put(1,34);
map.put(2,33);
map.forEach((o1,o2)->{
System.out.println(o1);
System.out.println(o2);
});
System.out.println(map.size());
}
}
|