First, initialize a global map
public static Map<String, String> map = new HashMap<String, String>() {
private static final long serialVersionUID = 1L;
{
put("name", "test");
put("gender", "man");
put("country", "China");
}
}
@BeforeClass
public void initMap() {
System.out.println(map); // {country=China, gender=man, name=test}
}
@AfterClass
public void clearMap() {
map.clear();
System.out.println(map); // {}
}
Traversal keySet
@Test
public readKeys() {
System.out.println(map.keySet()); // [country, gender, name]
for(String key : map.keySet()) {
System.out.println(key + ":" + map.get(key));
// country:China
// gender:man
// name:test
}
}
Traversal values
@Test
public readValues() {
System.out.println(map.values()); // [China, man, test]
for(String val : map.values()) {
System.out.println(val);
// China
// man
// test
}
}
Traversal entrySet (iterator traversal)
Iterator traversal advantages: can not delete operation can only be achieved with foreach traversal, use Iterator can remove elements by remove method
@Test
public readEntrys() {
System.out.println(map.entrySet()); // [country=China, gender=man, name=test]
Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
while(it.hasNext()) {
Map.Entry<String, String> entry = it.next();
System.out.println(entry.getKey() + ":" + entry.getValue());
// country:China
// gender:man
// name:test
//it.remove();
}
}
forEach binding Lambda (required java8 above) traversal key, value
@Test
public readLambda() {
map.forEach((key, value) -> {
System.out.println(key + ":" + value);
// country:China
// gender:man
// name:test
});
}
Operational recommendations
- Or simply get key value, recommended keySe / values
- Obtain entry is recommended entrySet
- Traverse process to remove elements recommended Iterator
- Traversal added elements, the elements can create a new temporary map storage, and other traversal is completed, then put a temporary map in the original map