📜  在Java中从 ArrayList 获取唯一值时如何保持插入顺序?(1)

📅  最后修改于: 2023-12-03 15:07:53.593000             🧑  作者: Mango

在Java中从 ArrayList 获取唯一值时如何保持插入顺序?

在 Java 中,要从 ArrayList 获取唯一值,并且要保持插入顺序,可以借助 LinkedHashSet 来实现。LinkedHashSet 继承自 HashSet,但是它可以通过链表来维护元素的插入顺序。因此,如果想要保持插入顺序并且去除重复元素,可以将 ArrayList 转换为 LinkedHashSet,再将这个 LinkedHashSet 转换回 ArrayList。

以下是示例代码:

import java.util.ArrayList;
import java.util.LinkedHashSet;

public class Main {
    public static void main(String[] args) {
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(2);
        list.add(4);
        list.add(1);

        LinkedHashSet<Integer> set = new LinkedHashSet<>(list);
        ArrayList<Integer> uniqueList = new ArrayList<>(set);

        System.out.println("Original list: " + list);
        System.out.println("Unique list with insert order: " + uniqueList);
    }
}

上述代码中,我们首先创建了一个包含重复元素的 ArrayList。然后,将它转换为 LinkedHashSet,这将自动去除重复元素并保持插入顺序。最后,我们将这个 LinkedHashSet 转换回 ArrayList,得到了一个保持插入顺序并且去除重复元素的 ArrayList。

输出结果为:

Original list: [1, 2, 3, 2, 4, 1]
Unique list with insert order: [1, 2, 3, 4]

可以看到,我们成功地获取了一个保持插入顺序并去除重复元素的 ArrayList。

因此,如果想要在 Java 中从 ArrayList 获取唯一值时保持插入顺序,可以借助 LinkedHashSet 来实现。