在java中,Map是一种常用的存储元素的方法,Map使用“键值对”的方式来存储元素,其中每个键映射到一个值,值可以重复,键不可以重复。以下介绍几种Map常见的迭代方法。
首先,初始化一个Map:
private static Map<String, Object> map = new HashMap<String, Object>() {
private static final long serialVersionUID = 5657009787456288973L;
{
put("name", "jack");
put("sex", "M");
put("age", 23);
}
};
接下来便是对这个Map集合进行遍历了:
1.使用entrySet的方式(使用最多):
@Test
public void entrySetTest() {
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + "=" + entry.getValue());
}
}
2.使用keySet的方式:
@Test
public void keySetTest() {
for (String key : map.keySet()) {
System.out.println(key + "=" + map.get(key));
}
}
3.使用iterator的方式:
@Test
public void iteratorTest() {
Iterator<Entry<String, Object>> iterator1 = map.entrySet().iterator();
while (iterator1.hasNext()) {
Entry<String, Object> entry = iterator1.next();
System.out.println(entry.getKey() + "=" + entry.getValue());
}
Iterator<String> iterator2 = map.keySet().iterator();
while (iterator2.hasNext()) {
String key = iterator2.next();
System.out.println(key + "=" + map.get(key));
}
}
4.使用values的方式(这种方式不能遍历key):
@Test
public void valuesTest() {
for (Object obj : map.values()) {
System.out.println(obj);
}
}
5.使用forEach的方式(JDK1.8新增,更加简洁优雅的迭代方式):
@Test
public void foreachTest() {
map.forEach((key, value) -> {
System.out.println(key + "=" + value);
});
}