在不改变元素顺序的情况下,从数组中移除重复项

24
我有一个数组,比如说 List<Integer>,内容如下:139, 127, 127, 139, 130 如何去重并保持其原始顺序?即得到:139, 127, 130

手动删除重复项,在这种情况下,您可以保留顺序。 - user2173738
12个回答

0

通过迭代器(而不是foreach)遍历数组并删除重复项。使用set查找重复项。

或者

遍历数组并将所有元素添加到LinkedHashSet中,它不允许重复项并保持元素的顺序。 然后清空数组,遍历集合并将每个元素添加到数组中。


0

下面我提供了一个示例,实现了一个通用函数,可以从ArrayList中删除重复项,并同时保持顺序。

import java.util.*;
public class Main {
    //Generic function to remove duplicates in list and maintain order
    private static <E> List<E> removeDuplicate(List<E> list) {
        Set<E> array = new LinkedHashSet<E>();
        array.addAll(list);
        return new ArrayList<>(array);
    }
    public static void main(String[] args) {
        //Print [2, 3, 5, 4]
        System.out.println(removeDuplicate(Arrays.asList(2,2,3,5, 3, 4)));
        //Print [AB, BC, CD]
        System.out.println(removeDuplicate(Arrays.asList("AB","BC","CD","AB")));
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接