如何从 ArrayList 中删除重复的元素?

新手上路,请多包涵

我有一个 ArrayList<String> ,我想从中删除重复的字符串。我怎样才能做到这一点?

原文由 user25778 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 405
2 个回答

如果您不想在 Collection 中重复,您应该考虑为什么要使用允许重复的 Collection 。删除重复元素的最简单方法是将内容添加到 Set (不允许重复),然后将 Set 添加回 ArrayList :2a65-2408

 Set<String> set = new HashSet<>(yourList);
yourList.clear();
yourList.addAll(set);

当然,这会破坏 ArrayList 中元素的顺序。

原文由 jonathan-stafford 发布,翻译遵循 CC BY-SA 4.0 许可协议

尽管将 ArrayList 转换为 HashSet 有效地删除了重复项,但如果您需要保留插入顺序,我宁愿建议您使用此变体

// list is some List of Strings
Set<String> s = new LinkedHashSet<>(list);

然后,如果您需要取回 List 引用,您可以再次使用转换构造函数。

原文由 abahgat 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题