我有一个 ArrayList,其中有一个嵌套的字符串 ArrayList,我想从中删除重复项。我知道如果我总是想删除重复项,我不应该使用 ArrayList,但在某些情况下重复项是有效的。从嵌套 ArrayList 中删除重复项的最佳方法是什么?
例如,我想执行一些转换的 Java:
[[duplicate], [duplicate], [duplicate], [unique1], [unique2]]
致:
[[duplicate], [unique1], [unique2]]
最佳答案
要从 ArrayList 中删除重复项,您可以这样做
yourList = new ArrayList<String>(new LinkedHashSet<String>(yourList));
使用 LinkedHashSet
而不是 HashSet
可确保保留原始列表的顺序。
关于您的评论:
这是一个将 [[1,2,3], [1,2], [3], [1,2]]
转换为 [[1,2, 3]、[1,2]、[3]]
。
Set<String> seen = new HashSet<String>();
for (List<String> l : strLists) {
for (Iterator<String> iter = l.iterator(); iter.hasNext(); )
if (!seen.add(iter.next()))
iter.remove();
// If you want to remove lists that end up empty:
if (l.isEmpty())
strLists.remove(l);
}
关于java - 从 ArrayList<ArrayList<String>> 对象中删除重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896112/