map的几种常用遍历方式
主要分这三类:
Set entrySet = map.entrySet();
Set keySet = map.keySet();
Collection values = map.values();
上代码:
public class MapTest {
public static void main(String[] args) {
// 定义一个Map的容器对象
Map<Integer, String > map = new HashMap<>();
map.put(20,"jack");
map.put(18,"rose");
map.put(17,"lucy");
map.put(25,"java");
// map1.put(20,"andy"); 在没有hashCode和equals方式 添加重复的键值(值不同),会覆盖掉前面key值相同的值
System.out.println(map);
//1. entrySet+foreach
//Set<Map.Entry<Integer, String>> entries = map.entrySet(); 可以直接放到foreach里,省略一行代码
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey()+":"+entry.getValue());
}
//2. entrySet+iterator
Iterator<Map.Entry<Integer, String>> entryIterator = map.entrySet().iterator();
while (entryIterator.hasNext()){
Map.Entry<Integer, String> entry = entryIterator.next();
System.out.println(entry.getKey()+":"+entry.getValue());
}
//3. KeySet+foreach
Set<Integer> keySet = map.keySet();
for (Integer key : keySet) {
System.out.println(key+":"+map.get(key));
}
//4. KeySet+iterator
Iterator<Integer> iterator = map.keySet().iterator();
while (iterator.hasNext()){
Integer key = iterator.next();
System.out.println(key+":"+map.get(key));
}
//5. 只需要用到map的value
Collection<String> values = map.values();
for (String value : values) {
System.out.println(value);
}
}
}