java - 如何存储两个数组中的公共(public)值

标签 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);

我有两个数组想从该数组中获取公共(public)值。我正在使用 retainAll 获取公共(public)值。例如:在第一个数组中有 4 个值,在第二个数组中有 3 个值。在这种情况下,两个值在两个中都是公共(public)的执行 retainAll 后的数组我得到了共同的值,但第一个数组只有两个值。我希望在执行 retainAll 后第一个数组中有相同的值。

最佳答案

如果您不想在调用 retainAll 后改变 servicesid 列表,请克隆它:

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

突变现在将应用于 copy 并且 servicesid 将保持不变。

关于java - 如何存储两个数组中的公共(public)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50800431/

相关文章:

java - 为什么 Maven 需要相同版本的不同依赖项?

android - future 已经完成的 flutter 错误

Android AsyncTask 线程限制?

android - 如何在Android Studio中禁用丢失的'@override'注释检查

java - 如何从 Firebase 检索数据并分配给 Android Studio 中 strings.xml 中的字符串

java - 如何使用 groovy 中的 pdfbox 进行编译(无法解析类 org.apache.pdfbox.util.Splitter )?

java - 使用 Gson 解析列表对象 json

java - 是否可以使用 Smooks 或其他转换器进行 Java 对象到映射转换?

javascript - 如何将后台作业转换为函数之类的东西?

android - Gradle仅从Maven Central下载.aar.asc