如何存储两个数组的常用值

时间:2018-06-11 14:46:38

标签: java android

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之后,我想在第一个数组中使用相同的值。

2 个答案:

答案 0 :(得分:1)

如果您不希望在致电servicesid后改变retainAll列表,请将其克隆:

List<String> copy = new ArrayList<>(servicesid);
selectedid = copy.retainAll(id);

现在,变异将应用于copyservicesid将保持不变。

答案 1 :(得分:1)

您可以使用Apache Commons的CollectionUtils.intersection

Collection<String> common = CollectionUtils.intersection(id, servicesid)