zoukankan      html  css  js  c++  java
  • list.remove出错 报 Not source之类的错误

    private static String removePreviousString(String str,String strPre){
    String[] strArray = str.split(",");//有冗余的权限,之前的权限和现在修改的权限
    String[] strPreArray = strPre.split(",");//之前设置的权限
    int[] a = new int [strPreArray.length];//保留需要剔除的之前的权限号位置
    int aNum = 0;
    StringBuffer sb = new StringBuffer();//用于输出
    Set<String> mLinkedSet = new LinkedHashSet<String>();//判断是否已包含了要剔除的权限
    for(int i=0;i<strPreArray.length;i++){
    for(int j=i;j<strArray.length;j++){
    if(strPreArray[i].equals(strArray[j]) && !mLinkedSet.contains(strArray[j])){
    mLinkedSet.add(strPreArray[i]);
    a[aNum] = j;
    aNum++;
    }
    }
    }
    String[] strings = removeArray(strArray, a);
    for(int k=0;k<strings.length;k++){
    sb.append(strings[k]+",");
    }
    return sb.toString().substring(0,sb.toString().length()-1);

    }

    =========================================

    private static String[] removeArray(String[] str,int[]a){
    List<String> list = new ArrayList<String>();
    for(int i=0;i<str.length;i++){
    list.add(str[i]);
    }
    for(int j=0;j<a.length;j++){
    list.remove(a[j]);
    }
    str = list.toArray(new String[1]);
    return str;
    }

    =================================

    原因list集合有5个 然后要移除第0,1,4

    移除了第0位 那么list集合就剩4个 ,接着再移除第1位,后面移除第4位就报错,因为没有这位

    而且假如list集合是0-1-2-3-4 要移除0;1;4

    这样移除就1-2-3-4 -》1-3-4 -》报错 Not Source 不仅移除不准确,而且还容易报错, 

    如果嫌麻烦,不想使用其他的方法,还是要用这种方法的话,就改成从后往前的方法进行

    PS:需要注意的是,这种方法移除的位数要进行排序

    ==========================================

    Arrays.sort(a);
    for(int j=0;j<a.length;j++){
    list.remove(a[a.length-1-j]);
    }

    ==========================================

    private static String[] removeArray(String[] str,int[]a){
    List<String> list = new ArrayList<String>();
    for(int i=0;i<str.length;i++){
    list.add(str[i]);
    }
    Arrays.sort(a);
    for(int j=0;j<a.length;j++){
    list.remove(a[a.length-1-j]);
    }
    str = list.toArray(new String[1]);
    return str;
    }

  • 相关阅读:
    如何用ps简单快速扣头发丝
    thinkphp在iis上不是出现500错误
    PHP数组函数详解大全
    一个搜图的好网站
    手把手编写PHP MVC框架实例教程
    centos配置epel和remi源
    CentOS 7 yum 安装php5.6
    20162322 朱娅霖 作业005&006 栈,队列
    2017-2018-1 bug终结者 团队博客002
    2017-2018-1 bug终结者 团队博客001
  • 原文地址:https://www.cnblogs.com/ccgyyn/p/10035497.html
Copyright © 2011-2022 走看看