Java 删除ArrayList中的重复元素

Java 删除ArrayList中的重复元素

前提是。Java中的ArrayList

给定一个ArrayList,任务是在Java中删除ArrayList中的重复元素。

例子

输入: ArrayList = [1, 2, 2, 3, 4, 4, 4]
输出: [1, 2, 3, 4]

输入: ArrayList = [12, 23, 23, 34, 45, 45, 45, 45, 57, 67, 89]
输出: [12, 23, 34, 45, 57, 67, 89]

以下是在Java中删除ArrayList中重复元素的各种方法。

  • 使用 a Set: 因为集合是一个不包括任何重复元素的集合。因此,解决方案可以在集合的帮助下实现。

步骤:

  1. 获取有重复元素的ArrayList。
  2. 将ArrayList转换为Set。
  3. 现在将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<String>
                gfg = new ArrayList<String>();
      
            // 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<String> set = new LinkedHashSet<>(gfg);
      
            // create a list and copy all value of set
            List<String> 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<String> set1 = new HashSet<>(gfg);
      
            // create a list and copy all value of set
            List<String> gfg2 = new ArrayList<>(set);
      
            // print ArrayList
            System.out.println("Modified ArrayList : "
                               + gfg2);
        }
    }
Java

输出:

Original ArrayList : [Geeks, for, Geeks]

Using LinkedHashSet:

Modified ArrayList : [Geeks, for]

Using HashSet:

Modified ArrayList : [Geeks, for]
Java
  • 使用 Java 8 Lambdas:

步骤:

  1. 获取有重复元素的ArrayList。
  2. 使用stream()方法将ArrayList转换为Stream。
  3. 使用distinct()方法将过滤条件设置为不同。
  4. 使用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<String>
            gfg = new ArrayList<String>();
  
        // 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<String> gfg1 = gfg.stream()
                                .distinct()
                                .collect(Collectors.toList());
  
        // print modified list
        System.out.println("Modified List : " + gfg1);
    }
}
Java

输出:

Original ArrayList : [Geeks, for, Geeks]
Modified List : [Geeks, for]
Java

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册