问题代码如下:
//将出入量项目子项统计结果为0的也进行统计
List<String> showNoneItemList = new ArrayList();
showNoneItemList = Arrays.asList(chooseArray);
for (int i = 0; i < summaryList.size(); i++) {
Iterator<String> it = showNoneItemList.iterator();
while (it.hasNext()) {
if (it.next().equals(summaryList.get(i).getIdVsItem())) {
it.remove();
}
}
}
执行结果
发生问题的原因如下:
调用Arrays.asList()生产的List的add、remove方法时报异常,这是由Arrays.asList() 返回的市Arrays的内部类ArrayList, 而不是java.util.ArrayList。Arrays的内部类ArrayList和java.util.ArrayList都是继承AbstractList,remove、add等方法AbstractList中是默认throw UnsupportedOperationException而且不作任何操作。java.util.ArrayList重写了这些方法而Arrays的内部类ArrayList没有重写,所以会抛出异常。
解决方法:
//将出入量项目子项统计结果为0的也进行统计
List<String> ArrayList = Arrays.asList(chooseArray);
List showNoneItemList = new ArrayList(ArrayList);
for (int i = 0; i < summaryList.size(); i++) {
Iterator<String> it = showNoneItemList.iterator();
while (it.hasNext()) {
if (it.next().equals(summaryList.get(i).getIdVsItem())) {
it.remove();
}
}
}
网友评论