我有两个清单。一个是如下,
public static final List<Integer> NATURAL_MANDATORY =
Collections.unmodifiableList(Arrays.asList(1,2,4,5));
第二个清单如下,
List<Integer> MandatoryList = new ArrayList<Integer>();
MandatoryList = [1,2];
我想找到两个列表之间有什么不同,因为我有写作
Constants.NATURAL_MANDATORY.removeAll(MandatoryList);
我正在
引起:java.lang.UnsupportedOperationException
由于它是不可修改的列表,有没有办法找到它们之间的区别
答案 0 :(得分:0)
您无法修改unmodifiableList
,因为它们是read-only
。在removeAll
方法中,删除第二个列表中第一个列表的元素。因此,此操作无法在NATURAL_MANDATORY
中执行。因此,如果您必须这样做,那么您可以将元素复制到新的List
并执行此操作。
答案 1 :(得分:0)
您试图修改导致unmodifiableList
的{{1}}。
您可以使用Apache Commons Collections 4.0中的CollectionUtils.subtract()
:
UnsupportedOperationException