删除数组中的重复项而不更改元素的顺序

Deq*_*ing 14 java arrays duplicates

我说有一个阵列 List<Integer> 139, 127, 127, 139, 130

如何删除它的重复并保持其顺序不变?即139, 127, 130

Pau*_*gas 22

使用的实例java.util.LinkedHashSet.

Set<Integer> set = new LinkedHashSet<>(list);
Run Code Online (Sandbox Code Playgroud)

  • 对不起,喝完咖啡后,我将成为一个完全不同的人. (4认同)

Zhe*_*lov 11

没有LinkedHashSet开销(用于HashSet看到的元素,而不是稍微快一些):

List<Integer> noDuplicates = list
        .stream()
        .distinct()
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

请注意,顺序由Stream.distinct()合约保证:

对于有序流,不同元素的选择是稳定的(对于重复元素,保留在遇到顺序中第一个出现的元素。)


And*_*hev 5

有了这个单线:

yourList = new ArrayList<Integer>(new LinkedHashSet<Integer>(yourList))
Run Code Online (Sandbox Code Playgroud)