在map里删除元素
2013-01-17 15:46
197 查看
map删除指定元素:
/** 1.HashMap 类映射不保证顺序;某些映射可明确保证其顺序: TreeMap 类
* 2.在遍历Map过程中,不能用map.put(key,newVal),map.remove(key)来修改和删除元素,
* 会引发 并发修改异常,可以通过迭代器的remove():
* 从迭代器指向的 collection 中移除当前迭代元素。
* */
删除奇数行数据方法如下:
public static void main(String[] args) {
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(5,"five");
map.put(6,"six");
map.put(7,"seven");
map.put(8,"eight");
map.put(5,"five");
map.put(9,"nine");
map.put(10,"ten");
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, String> entry=it.next();
int key=entry.getKey();
if(key%2==1){
System.out.println("delete this: "+key+" = "+key);
//map.put(key, "奇数"); //这样写会报异常
//map.remove(key); //这样写会报异常
it.remove(); //正确
}
}
//遍历当前的map;这种新的for循环无法修改map内容,因为不通过迭代器。
System.out.println("-------\n\t最终的map的元素遍历:");
for(Map.Entry<Integer,String> entry:map.entrySet()){
int k=entry.getKey();
String v=entry.getValue();
System.out.println(k+" = "+v);
}
}
/** 1.HashMap 类映射不保证顺序;某些映射可明确保证其顺序: TreeMap 类
* 2.在遍历Map过程中,不能用map.put(key,newVal),map.remove(key)来修改和删除元素,
* 会引发 并发修改异常,可以通过迭代器的remove():
* 从迭代器指向的 collection 中移除当前迭代元素。
* */
删除奇数行数据方法如下:
public static void main(String[] args) {
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(5,"five");
map.put(6,"six");
map.put(7,"seven");
map.put(8,"eight");
map.put(5,"five");
map.put(9,"nine");
map.put(10,"ten");
Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<Integer, String> entry=it.next();
int key=entry.getKey();
if(key%2==1){
System.out.println("delete this: "+key+" = "+key);
//map.put(key, "奇数"); //这样写会报异常
//map.remove(key); //这样写会报异常
it.remove(); //正确
}
}
//遍历当前的map;这种新的for循环无法修改map内容,因为不通过迭代器。
System.out.println("-------\n\t最终的map的元素遍历:");
for(Map.Entry<Integer,String> entry:map.entrySet()){
int k=entry.getKey();
String v=entry.getValue();
System.out.println(k+" = "+v);
}
}
相关文章推荐
- std::map遍历删除某些元素问题
- STL:map的使用:删除map中指定值为value的所有元素
- STL中map/vector的删除元素操作
- 遍历map时删除不需要的元素方法
- stl的vector,map,list删除元素
- java遍历map并删除元素时,使用不当会抛弃异常
- C++遍历中删除std::hash_map元素问题
- std::map遍历删除某些元素问题
- 第六天 :面试题 关于如何如何删除map集合中的某个元素
- C++map删除多个元素的方法
- Java如何在List或Map遍历过程中删除元素
- map遍历时,删除元素
- c++如何遍历删除map/vector里面的元素
- std::map 在循环中删除元素
- 编程技巧系列(2)Java 集合(List,Set,Map)遍历时有条件删除特定元素
- std::map 删除指定条件的元素
- Map遍历的两种方式(首推entrySet())--遍历Map时删除元素的方法
- 遍历Map的时候删除map中的元素,报异常Exception in thread "main" java.util.ConcurrentModificationException
- 删除map、list集合元素总结
- Java基础随笔记——Map删除其中某个元素