Map读取不影响修改删除的方式
Map操作边遍历边修改是不安全的方式,如何避免呢?只有通过其他结构来处理,将修改和读取分开就OK。
package com.boonya.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
private Map<Integer, String> map = new HashMap<Integer, String>();
public void Add(Integer key,String value)
{
map.put(key,value);
}
public void Remove(Integer key)
{
if(map.containsKey(key)){
map.remove(key);
}
}
public void ReadMapMethodOne(){
Set<Integer> set= map.keySet();
for (Integer in : set) {
//map.keySet()返回的是所有key的值
String str = map.get(in);//得到每个key多对用value的值
System.out.println(in + " " + str);
}
}
public void ReadMapMethodTwo(){
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
}
public void ReadMapMethodThree() {
Set<Map.Entry<Integer,String>> entrySet=map.entrySet();
for (Map.Entry<Integer, String> entry :entrySet) {
//Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
//entry.getKey() ;entry.getValue(); entry.setValue();
//map.entrySet() 返回此映射中包含的映射关系的 Set视图。
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
}
public void ReadMapMethodFour() {
for (String value:map.values()){
System.out.println(" value= " +value);
}
}
}
纸上得来终觉浅,绝知此事要躬行。