假设我定义了一个列表:
List<String> cards = new ArrayList<>();
cards.add("king");
cards.add("queen");
cards.add("king");
cards.add("king");
cards.add("prince");
cards.add("queen");
cards.add("prince");
因此,这个ArrayList有3个"王"字符串对象,2个"女王"和2个"王子"。到目前为止还不错。
现在我想定义一个新的列表:
List<String> toRemove = new ArrayList<>();
toRemove.add("king");
toRemove.add("king");
toRemove.add("queen");
toRemove.add("queen");
toRemove.add("prince");
因此,这个ArrayList有2个"国王"、2个"王后"和1个"王子"。现在,如果我愿意:
cards.removeAll(toRemove);
这会考虑重复的对象吗?
如果你从卡片列表中减去toRemove列表,你应该剩下1个"国王"、0个"王后"和1个"王子"。正确的
但是removeAll函数会识别出那里有重复的对象吗,而不是试图从卡片中删除所有出现的"国王"、"王后"one_answers"王子",所以我会留下一个空列表(卡片(吗?
最终的名单是{"国王"、"王子"}还是空名单{}?
如Java文档中所述:
removeAll(集合c(
删除包含在中的此集合的所有元素指定的集合(可选操作(。本次通话后返回,则该集合将不包含与指定的集合。