正如评论区所说,下面删除线的描述存在歧义,再描述一下:
用list2 .containsAll(list1)举例,list2包含list1中的每一个元素,如果是返回true,否则返回false。
list2 .containsAll(list1)方法经常被用来判断list1是不是list2的子集。这个用法并不对,如下图:
List<Integer> list1 = new ArrayList<>(Arrays.asList(0, 0, 0));
List<Integer> list2 = new ArrayList<>(Arrays.asList(1, -5, 0));
System.out.println(list2 .containsAll(list1));
执行之后会打印true。明显list1不是list2的子集。
这个方法的正确描述:list2是否包含list1的所有元素