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();
                        }
                    }
                }
            }
        }
    }
  • 相关阅读:
    ###MySQL 数据库DataBase
    操作mysql数据库
    发送邮件
    模块-os.system的两个模块/random模块/datetime模块/写日志
    map/fileter
    日期相关-时间模块
    内置函数
    集合+函数
    函数-变量-参数-递归
    模块(os模块)
  • 原文地址:https://www.cnblogs.com/double-s/p/15062030.html
Copyright © 2011-2022 走看看