ArrayList<String>id=new ArrayList<>();
ArrayList<String>servicesid=new ArrayList<>();
for(DocumentSnapshot documentSnapshot:task.getResult()){
String documentid=documentSnapshot.getId();
id.add(documentid);
}
servicesid = getArguments().getStringArrayList("serviceid");
selectedid=servicesid.retainAll(id);
我有两个数组想从这些数组中获取常用值。我使用retainAll来获取公共值.Ex:在第一个数组中,第二个数组中有4个值,有3个值。在这种情况下,两个值都是常见的执行retainAll之后的数组我得到了通用值,但是第一个数组只有两个值。在执行retainAll之后,我想在第一个数组中使用相同的值。
答案 0 :(得分:1)
如果您不希望在致电servicesid
后改变retainAll
列表,请将其克隆:
List<String> copy = new ArrayList<>(servicesid);
selectedid = copy.retainAll(id);
现在,变异将应用于copy
,servicesid
将保持不变。
答案 1 :(得分:1)
您可以使用Apache Commons的CollectionUtils.intersection
:
Collection<String> common = CollectionUtils.intersection(id, servicesid)