Java 如何存储两个数组中的公共值 ArrayListid=newarraylist(); ArrayListservicesid=新的ArrayList(); 对于(DocumentSnapshot DocumentSnapshot:task.getResult()){ 字符串documentid=documentSnapshot.getId(); id.add(documentid); } servicesid=getArguments().getStringArrayList(“serviceid”); 选择edid=servicesid.retainal(id);
我有两个数组希望从该数组中获取公共值。我使用Retainal获取公共值。例如:在第一个数组中有4个值,在第二个数组中有3个值。在这种情况下,在执行Retainal后,两个数组中的两个值都是公共值。我获取公共值,但第一个数组中只有两个值。我希望在执行Retainal后的第一个数组。如果不想在调用Java 如何存储两个数组中的公共值 ArrayListid=newarraylist(); ArrayListservicesid=新的ArrayList(); 对于(DocumentSnapshot DocumentSnapshot:task.getResult()){ 字符串documentid=documentSnapshot.getId(); id.add(documentid); } servicesid=getArguments().getStringArrayList(“serviceid”); 选择edid=servicesid.retainal(id);,java,android,Java,Android,我有两个数组希望从该数组中获取公共值。我使用Retainal获取公共值。例如:在第一个数组中有4个值,在第二个数组中有3个值。在这种情况下,在执行Retainal后,两个数组中的两个值都是公共值。我获取公共值,但第一个数组中只有两个值。我希望在执行Retainal后的第一个数组。如果不想在调用Retainal后改变servicesid列表,请克隆它: ArrayList<String>id=new ArrayList<>(); ArrayList<String>
Retainal
后改变servicesid
列表,请克隆它:
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);
List copy=new ArrayList(servicesid);
选择edid=copy.retainal(id);
变异现在将应用于copy
,而servicesid
将保持不变 您可以使用Apache Commons:
List<String> copy = new ArrayList<>(servicesid);
selectedid = copy.retainAll(id);
Collection common=CollectionUtils.intersection(id,servicesid)
Collection<String> common = CollectionUtils.intersection(id, servicesid)