我有一个数组,比如说
List<Integer>
,内容如下:139, 127, 127, 139, 130
如何去重并保持其原始顺序?即得到:139, 127, 130
List<Integer>
,内容如下:139, 127, 127, 139, 130
如何去重并保持其原始顺序?即得到:139, 127, 130
通过迭代器(而不是foreach)遍历数组并删除重复项。使用set查找重复项。
或者
遍历数组并将所有元素添加到LinkedHashSet中,它不允许重复项并保持元素的顺序。 然后清空数组,遍历集合并将每个元素添加到数组中。
下面我提供了一个示例,实现了一个通用函数,可以从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")));
}
}