定义Map集合
Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "one");
map.put(2, "two");
map.put(3, "three");
map.put(4, "four");
map.put(4, "five");
(1)需求:只需要获取所有的key,最佳方案如下:
for (Integer key : map.keySet()) {//在for-each循环中遍历keys
System.out.println(String.valueOf(key));
}
优点:比entrySet遍历要快,代码简洁。
(2)需求:只需要获取所有的value,最佳方案如下:
for (String value : map.values()) {//在for-each循环中遍历value
System.out.println(value);
}
优点:比entrySet遍历要快,代码简洁。
(3)假如key和value都需要
方法一:
重复(1)和(2)的两次遍历, 分别获取keys和values。
缺点:需要两次遍历。
方法二:
通过键找值遍历
for (Integer key : map.keySet()) {//在for-each循环中遍历keys
String value = map.get(key);
System.out.println(key+"========"+value);
}
缺点:根据键取值是耗时操作,效率非常的慢, 所以不推荐。
方法三:
通过Map.entrySet遍历key和value
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
优点:代码简洁,效率高,推荐使用。
方法四:
使用Iterator遍历
Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<Integer, String> entry = iterator.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
缺点:代码比起前面几个方法并不简洁。
优点:当遍历的时候,如果涉及到删除操作,建议使用Iterator的remove方法,因为如果使用foreach的话会报错。
[本章完...]









网友评论