Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
比方说:
(
如何确定
使用
另一个例子:
在这里,我希望结果为
想法是从
(如果元素存在,则
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
5年前关闭。
比方说:
a = ["s", "i", "n", "e", "d"];
b = ["s", "e", "n", "d"];
(
a
和b
的类型为List<String>
)如何确定
b
中是否所有字母都包含在a
中? -不一定按顺序排列(在这种情况下,这是正确的,因为[s,e,n,d]
位于a
和b
中)使用
a.containsAll(b)
并不总是有效!另一个例子:
a=["b", "a", "z", "z", "z"]
b=["a", "a", "b", "b"]
在这里,我希望结果为
false
,因为[a,a,b,b]
在a
中不会以任何顺序出现,但是使用a.containsAll(b)
将返回true
! 最佳答案
尝试这个:
private boolean containsAll(List<?> a, List<?> b) {
// List doesn't support remove(), use ArrayList instead
ArrayList<Object> x = new ArrayList<Object>();
ArrayList<Object> y = new ArrayList<Object>();
x.addAll(a);
y.addAll(b);
for (Object o : y) {
if (!x.remove(o)) // an element in B is not in A!
return false;
}
return true; // all elements in B are also in A
}
想法是从
b
中删除a
中的每个字母。当您尝试删除不在a
中的字母时,会确认a
不在b
中包含所有字母。(如果元素存在,则
remove()
将返回true
,否则返回false
)