【问题标题】:How to get the list of items that are extra in one ArrayList when compared to another?与另一个相比,如何获取一个 ArrayList 中额外的项目列表?
【发布时间】:2011-03-12 07:06:30
【问题描述】:

我有两个带有以下项目的 ArrayList

ArrayList1    {"bc.jpg","12.jpg","xy.png","123.gif","ref.gif","gef.png","abc.jpg"}

ArrayList2   {"tt.jpg","12.jpg","xy.png","gef.png","abc.jpg"}

列表中的项目可能没有排序

是否有一个函数可以找出 ArrayList1 中的额外项目 ("bc.jpg","123.gif","re​​f.gif") 不存在于 ArrayList2 中?

【问题讨论】:

  • SO 社区比谷歌搜索更好;)

标签: java arrays arraylist


【解决方案1】:
Set<String> copy = new HashSet<String>(list1);
copy.removeAll(list2);
System.out.println(copy);

如果您需要保留重复项的顺序和基数,可以使用 List/ArrayList 代替 Set/HashSet,但效率会较低。

【讨论】:

  • 副本不需要是 Set——removeAll 在 Collection 中——但如果列表可能很长,则有意义。
  • 感谢它的工作.. 但我使用 ArrayList 而不是 HashSet 来避免强制转换.. 标记为正确..
猜你喜欢
  • 2019-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-03
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多