【发布时间】:2018-04-06 10:41:32
【问题描述】:
public static void main(String[] args) {
String OptionId = "111, 112, 113, 114, 115";
List<String> fullList = Arrays.asList(OptionId.split(","));
List<String> values = new ArrayList<String>();
System.out.println("fullList: " + fullList.toString());
List<String> subItems = fullList.subList(0, 3);
System.out.println("subItems: " + subItems);
for (String s : fullList) {
String strs[] = new String[2];
if (subItems.contains(s)
|| subItems.contains(strs[0])
|| subItems.contains(strs[1])) {
values.add(s); // save the value to a list
}
}
System.out.println("values: " + values);
fullList.remove(values);
System.out.println("fullList: " + fullList);
}
据我所知,最终的完整列表应该只有 [114, 115]。但它没有删除子列表中存在的项目。
我也试过下面的代码。 fullList.removeAll(values);
但它会引发以下错误。
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.remove(AbstractList.java:161)
at java.util.AbstractList$Itr.remove(AbstractList.java:374)
at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
at com.tesco.rangeplan.client.Test.main(Test.java:32)
我需要如下输出:
fullList: [114, 115]
【问题讨论】:
标签: java list exception arraylist