关键词搜索

源码搜索 ×
×

Map读取不影响修改删除的方式

发布2018-05-07浏览674次

详情内容

Map操作边遍历边修改是不安全的方式,如何避免呢?只有通过其他结构来处理,将修改和读取分开就OK。

  1. package com.boonya.map;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;
  5. import java.util.Set;
  6. public class MapTest {
  7. private Map<Integer, String> map = new HashMap<Integer, String>();
  8. public void Add(Integer key,String value)
  9. {
  10. map.put(key,value);
  11. }
  12. public void Remove(Integer key)
  13. {
  14. if(map.containsKey(key)){
  15. map.remove(key);
  16. }
  17. }
  18. public void ReadMapMethodOne(){
  19. Set<Integer> set= map.keySet();
  20. for (Integer in : set) {
  21. //map.keySet()返回的是所有key的值
  22. String str = map.get(in);//得到每个key多对用value的值
  23. System.out.println(in + " " + str);
  24. }
  25. }
  26. public void ReadMapMethodTwo(){
  27. Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
  28. while (it.hasNext()) {
  29. Map.Entry<Integer, String> entry = it.next();
  30. System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  31. }
  32. }
  33. public void ReadMapMethodThree() {
  34. Set<Map.Entry<Integer,String>> entrySet=map.entrySet();
  35. for (Map.Entry<Integer, String> entry :entrySet) {
  36. //Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
  37. //entry.getKey() ;entry.getValue(); entry.setValue();
  38. //map.entrySet() 返回此映射中包含的映射关系的 Set视图。
  39. System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  40. }
  41. }
  42. public void ReadMapMethodFour() {
  43. for (String value:map.values()){
  44. System.out.println(" value= " +value);
  45. }
  46. }
  47. }

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载