【问题标题】:element intersection between multiple arrayList多个arrayList之间的元素交集
【发布时间】:2012-07-08 09:48:33
【问题描述】:

我在 MP3 文件的“注释”部分添加和删除 TAGS(字符串)。我主要依靠 ArrayList 来拆分 COMMENT 字符串。现在我想找到这些标签的交集(或者更好地说是 ArrayList 的字符串元素)。

我需要知道我是否选择了正确的集合,还有什么是找到这些交叉点的​​最佳方法?因为用户可能会选择 10 或 100 首歌曲(ArrayLists)并询问相交标签。我是否应该单独查找两个 ArrayLists 的相交标签,然后使用结果来查看第三个 ArrayList 等等?还是我需要改变我的数据结构。

很抱歉写了一篇文章。

【问题讨论】:

    标签: java data-structures collections arraylist intersection


    【解决方案1】:

    如果您不想修改现有列表,请使用 org.apache.commons.collections 中的 ListUtils。

    ListUtils.intersection(list1, list2)

    【讨论】:

      【解决方案2】:

      如果您想计算交点,您几乎可以肯定使用Set 而不是List。集合非常适合处理无序集合和操作,如联合和交集(removeAllretainAll)。它们还可以更有效地回答诸如“此元素是否包含在集合中?”之类的问题

      希望这会有所帮助!

      【讨论】:

      • 我能找到多组元素的交集而不仅仅是两个吗?
      • 是的......你只需做每组的成对交集。
      • 哦,所以和我上面解释的一样,找到两者之间的交集,然后使用第三个和循环的结果?
      • 是的,但是每一步都会比使用 ArrayList 快很多,很多
      • 感谢您所做的一切,如果您能帮助我为 SET 提供替代方案,还有一件事? ArrayList items = new ArrayList(Arrays.asList(comment.split(", ")));
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-04
      相关资源
      最近更新 更多