从Java中的ArrayList中删除重复的元素
先决条件: Java中的 ArrayList
给定一个 ArrayList,任务是删除Java中 ArrayList 的重复元素。
例子:
Input: ArrayList = [1, 2, 2, 3, 4, 4, 4]
Output: [1, 2, 3, 4]
Input: ArrayList = [12, 23, 23, 34, 45, 45, 45, 45, 57, 67, 89]
Output: [12, 23, 34, 45, 57, 67, 89]
以下是在Java中删除 ArrayList 中重复元素的各种方法:
- 使用集合:因为集合是一个不包含任何重复元素的集合。因此,解决方案可以在 Set 的帮助下实现。
方法:
- 获取包含重复元素的 ArrayList。
- 将 ArrayList 转换为 Set。
- 现在将 Set 转换回 ArrayList。这将删除所有重复的元素。
下面是上述方法的实现:
// Java code to illustrate remove duolicate // of ArrayList using hashSet<> method import java.util.*; public class GFG { public static void main(String args[]) { // create a ArrayList String type ArrayList
gfg = new ArrayList (); // Initialize an ArrayList gfg.add("Geeks"); gfg.add("for"); gfg.add("Geeks"); // print ArrayList System.out.println("Original ArrayList : " + gfg); // -----Using LinkedHashSet----- System.out.println("\nUsing LinkedHashSet:\n"); // create a set and copy all value of list Set set = new LinkedHashSet<>(gfg); // create a list and copy all value of set List gfg1 = new ArrayList<>(set); // print ArrayList System.out.println("Modified ArrayList : " + gfg1); // -----Using HashSet----- System.out.println("\nUsing HashSet:\n"); // create a set and copy all value of list Set set1 = new HashSet<>(gfg); // create a list and copy all value of set List gfg2 = new ArrayList<>(set); // print ArrayList System.out.println("Modified ArrayList : " + gfg2); } } 输出:Original ArrayList : [Geeks, for, Geeks] Using LinkedHashSet: Modified ArrayList : [Geeks, for] Using HashSet: Modified ArrayList : [Geeks, for]
- 使用Java 8 Lambda:
方法:
- 获取包含重复元素的 ArrayList。
- 使用 stream() 方法将 ArrayList 转换为 Stream。
- 使用 distinct() 方法将过滤条件设置为不同。
- 使用 collect() 方法将过滤后的值收集为列表。此列表将删除重复的元素
下面是上述方法的实现:
例子:
// Java code to illustrate remove duolicate // of ArrayList using hashSet<> method import java.util.*; import java.util.stream.Collectors; public class GFG { public static void main(String args[]) { // create a ArrayList String type ArrayList
gfg = new ArrayList (); // Initialize an ArrayList gfg.add("Geeks"); gfg.add("for"); gfg.add("Geeks"); // print ArrayList System.out.println("Original ArrayList : " + gfg); // create a list and copy all distinct value of list List gfg1 = gfg.stream() .distinct() .collect(Collectors.toList()); // print modified list System.out.println("Modified List : " + gfg1); } } 输出:Original ArrayList : [Geeks, for, Geeks] Modified List : [Geeks, for]