我有两个数组列表。第一个阵列列表包含应从第二个阵列列表中删除的ID。第二个数组列表不仅包含ID,还包含其他信息(制表符分隔)。

ArrayList1 = [1000, 1001]
ArrayList2 = [1000     Yes     3     33,1001     No     No     22,1002     No     Yes     4,1003     No     No     13]


我想做的是删除ArrayList2中具有相同ID的所有元素。因此,最终输出应为另一个arrayList,如下所示:
ArrayList2 = [1002否是4,1003否否13]。

关于如何解决此问题的任何想法。

最佳答案

您可以在下面尝试代码。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;

public class Test {
    public static void main(String args[]){
        Integer idArr[] =  {1000, 1001};
        String unitArr2[] = {"1000  Yes 3   33","1001   No  No  22","1002   No  Yes 4","1003    No  No  13"};

        ArrayList<String> list = new ArrayList<String>(Arrays.asList(unitArr2));

        for(int id: idArr){
            Iterator<String> iterator = list.iterator();
            while(iterator.hasNext()){
                String unit = iterator.next();
                if(Integer.parseInt(unit.split("\t")[0]) == id){
                    iterator.remove();
                    break;
                }
            }
        }

        for(String unit: list){
            System.out.println(unit);
        }
    }
}

08-18 10:15
查看更多