如何找到两个列表之间的差异

时间:2018-03-31 05:31:57

标签: java spring collections

我有两个清单。一个是如下,

 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

由于它是不可修改的列表,有没有办法找到它们之间的区别

2 个答案:

答案 0 :(得分:0)

您无法修改unmodifiableList,因为它们是read-only。在removeAll方法中,删除第二个列表中第一个列表的元素。因此,此操作无法在NATURAL_MANDATORY中执行。因此,如果您必须这样做,那么您可以将元素复制到新的List并执行此操作。

答案 1 :(得分:0)

您试图修改导致unmodifiableList的{​​{1}}。

您可以使用Apache Commons Collections 4.0中的CollectionUtils.subtract()

UnsupportedOperationException