将新列表与java中的现有列表进行比较,并创建差异列表,如果不存在,则从旧文件中删除该项目

时间:2017-02-28 15:20:13

标签: java list

我有一个包含

的新列表
102
103
105
108

包含

的现有列表
102
104
105
108
109

想要列出新列表中的所有项目,并从旧列表中删除新列表中不存在的项目。

基本上我需要一个包含

的列表1
102
103
105
108

我需要从现有内容中删除的另一个列表包含:

104
109

2 个答案:

答案 0 :(得分:1)

这可以在列表副本上使用标准List.removeAll()方法完成。

List<Integer> newList = Arrays.asList(102, 103, 105, 108);
List<Integer> oldList = Arrays.asList(102, 104, 105, 108, 109);

List<Integer> deleted = new ArrayList<>(oldList);
deleted.removeAll(newList);
System.out.println(deleted);

输出

[104, 109]

答案 1 :(得分:1)

我希望这会奏效,

    List<Integer> newList = Arrays.asList(102,103,105,108); 
    List<Integer> exstList = Arrays.asList(102,104,105,108,109);
    List<Integer> deleList = new LinkedList<Integer>();
    for(int a : exstList){
        if(!newList.contains(a)){
            deleList.add(a);
        }
    }
    System.out.println(newList); //as it is new list.
    System.out.println(deleList);// diff list