码迷,mamicode.com
首页 > 其他好文 > 详细

list.remove出错 报 Not source之类的错误

时间:2018-11-28 23:44:50      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:bst   其他   从后往前   使用   包含   rem   报错   oar   sub   

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

list.remove出错 报 Not source之类的错误

标签:bst   其他   从后往前   使用   包含   rem   报错   oar   sub   

原文地址:https://www.cnblogs.com/ccgyyn/p/10035497.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!