gpt4 book ai didi

java - 比较两个列表并删除两个列表中的值的更短方法?

转载 作者:行者123 更新时间:2023-12-02 06:03:53 24 4
gpt4 key购买 nike

我正在尝试比较两个 ArrayList,并从列表中删除值(如果它们出现在第二个列表中)。两个列表都包含相同的类:“EditableListItem。

ArrayList<EditableListItem> items = new ArrayList<EditableListItem>();
ArrayList<EditableListItem> addedItems = new ArrayList<EditableListItem>();

我已经编写了这段代码,它可以完成这项工作,但我不认为这是一个很好的解决方案。

    int remove_n = -1;
for(int k=0;k<addedItems.size();k++)
{
for(int i=0;i<items.size();i++)
{
if(items.get(i).getKey().equals(addedItems.get(k).getKey()))
{
remove_n = i;
}
}
if(remove_n > -1)
{
items.remove(remove_n);
remove_n = -1;
}
}

有没有办法用更少的行数来做到这一点?或者也许使用 ArrayList 中的某种方法?

谢谢

最佳答案

您可以使用ArrayList#removeAll(Collection c),例如items.removeAll(addedItems).

如果您希望它运行得更快,请从一个集合创建一个 HashSet,然后调用其 removeAll() 方法。

关于java - 比较两个列表并删除两个列表中的值的更短方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22446435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com