Java使用Iterator从列表中删除匹配项。

示例

上面我注意到一个示例,该示例从循环中的列表中删除项目,并且想到了另一个示例,该示例这次可以使用该Iterator界面派上用场。
这是一个技巧的演示,该技巧在处理要摆脱的列表中的重复项时可能会派上用场。

注意:这仅添加到循环示例中的“从列表中删除项目”上

因此,让我们像往常一样定义列表

    String[] names = {"James","Smith","Sonny","Huckle","Berry","Finn","Allan"};
    List<String> nameList = new ArrayList<>();

    //从数组创建列表
    nameList.addAll(Arrays.asList(names));
    
    String[] removeNames = {"Sonny","Huckle","Berry"};
    List<String> removeNameList = new ArrayList<>();

    //从数组创建列表
    removeNameList.addAll(Arrays.asList(removeNames));

以下方法接收两个Collection对象,并执行了删除与中的元素removeNameList匹配的元素的妙处nameList。

private static void removeNames(Collection<String> collection1, Collection<String> collection2) {
      //获取迭代器。
    Iterator<String> iterator = collection1.iterator();
    
    //在收藏有物品时循环
    while(iterator.hasNext()){
        if (collection2.contains(iterator.next()))
            iterator.remove(); //删除当前的名称或项目
    }
}

调用方法并按如下所示传递nameList和将产生以下输出:removeNameListremoveNames(nameList,removeNameList);

删除名称之前的数组列表: James Smith Sonny Huckle Berry Finn Allan
删除名称之后的数组列表: James Smith Finn Allan

集合的一种简单易用的用法,可以方便地删除列表中的重复元素。