📅  最后修改于: 2023-12-03 15:07:53.593000             🧑  作者: Mango
在 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 来实现。