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;
    }

  • 相关阅读:
    【译】第33节---种子数据
    python文件的读写
    python-----实现数据库安装和连接操作
    学习进度(第三周)
    解 idea(.IntelliJIdea2019.3)双击打不开的原因
    python爬虫------处理cookie的相关请求
    安装retrying模块出现 (Retry(total=4, connect=None, read=None, redirect=None, status=None))
    java----统计疫情可视化展示--echarts(三)
    java----统计疫情可视化展示--echarts(二)
    java----统计疫情可视化展示--echarts
  • 原文地址:https://www.cnblogs.com/ccgyyn/p/10035497.html
Copyright © 2011-2022 走看看