zoukankan      html  css  js  c++  java
  • 关于List的remove()方法遇到的坑

    如果在循环的过程中调用集合的remove()方法,就会导致循环出错,因为循环过程中list.size()的大小变化了,就导致了错误。 所以,如果想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态
        
    List<PortalWModule> list= new ArrayList<PortalWModule>();
    list= proMenuService.getFristMenu(loginUser.getEmpId(),arr[i]);
    if("2".equals(arr[i])){  //如果是运维子系统,将对其参数设置中(是否展示的)菜单进行过滤
        Iterator<PortalWModule> it=list.iterator();
        while(it.hasNext()){
            PortalWModule portalWModule=it.next();
            Map<String, Object> menuSettings = proMenuService.getMenuSettings(); //查找菜单参数设置中需要隐藏的菜单
            if(menuSettings!=null){
                if("N".equals(menuSettings.get("MENU_STATUS"))){
                    String[] moduleIds = menuSettings.get("MODULE_ID").toString().split(",");
                    for (String moduleId : moduleIds) {
                        if(moduleId.equals(String.valueOf(portalWModule.getModuleId()))){
                            it.remove();
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    JAVA CAS原理深度分析
    Java 并发类库AbstractQueuedSynchronizer 分析
    构建高并发高可用的电商平台架构实践
    简单控件 复合控件
    WebFrom基础
    控件m
    控件
    WinForm
    操作数据类m
    数据操作类
  • 原文地址:https://www.cnblogs.com/double-s/p/15062030.html
Copyright © 2011-2022 走看看