迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

用 Java 从数组中删除重复项

作者:迹忆客 最近更新:2023/09/09 浏览次数:

数组是一个集合,可以存储相似类型的元素,并为其分配固定的内存位置。数组也允许存储重复值。

本文将演示如何以不同的方式在 Java 中有效地从数组中删除重复项。


在 Java 中使用临时数组从数组中删除重复项

在这个方法中,重点是遍历输入数组,然后将原始数组中的唯一元素复制到临时数组中。为此,我们将使用 for 循环和 if 语句。最后,将临时数组中的元素复制到原始数组中,然后将其打印出来。

请参考下面的代码。

public class Main{
public static int remove_Duplicate_Elements(int arr[], int n){
        if (n==0 || n==1){
            return n;  
        }  
        int[] tempA = new int[n];  
        int j = 0;  
        for (int i=0; i<n-1; i++){
            if (arr[i] != arr[i+1]){
                tempA[j++] = arr[i];  
            }  
         }  
        tempA[j++] = arr[n-1];       
        for (int i=0; i<j; i++){
            arr[i] = tempA[i];  
        }  
        return j;  
    }  
       
    public static void main (String[] args) {
        int arr[] = {56,56,77,78,78,98,98};  
        int length = arr.length;  
        length = remove_Duplicate_Elements(arr, length);    
        for (int i=0; i<length; i++)  
           System.out.print(arr[i]+" ");  
    }  
}

输出:

56 77 78 98 

请注意,我们只能在已排序的数组上实现上述程序。


在 Java 中使用单独的索引从数组中删除重复项

在这里,if 语句用于检查元素是否等于其下一个元素。如果没有,则该特定元素仅添加到该类似数组中的某个索引处。这样做是为了表明在数组中,此特定元素仅添加一次。

此方法也仅适用于数组已排序的情况。

我们在以下代码片段中实现了这一点。


public class Main {
    public static int remove_Duplicates(int a[], int n)
    {
        if (n == 0 || n == 1) {
            return n;
        }

        int j = 0;

        
        for (int i = 0; i < n - 1; i++) {
            if (a[i] != a[i + 1]) {
                a[j++] = a[i];
            }
        }

        a[j++] = a[n - 1];

        return j;
    }

    public static void main(String[] args)
    {
        int a[] = { 11, 24, 24, 37, 37, 44, 47, 47, 56, 56};

        int n = a.length;
        
        int j=0;
        
        j = remove_Duplicates(a, n);

        
        for (int i = 0; i < j; i++)
            System.out.print(a[i] + " ");
    }
}

输出:

11 24 37 44 47 56 

在 Java 中使用 Arrays.sort() 方法从数组中删除重复项

Arrays.sort() 函数可以在 Java 中对数组进行排序。这种方法不仅用于链表、数组列表等,我们也可以用于原始数据类型。

如果我们使用这种方法,时间和空间复杂度是不固定的。这完全取决于代码的实现。

例如,

import java.util.Arrays;  
public class Main{
public static int remove_Duplicate_Elements(int arr[], int n){
        if (n==0 || n==1){
            return n;  
        }  
        int[] tempA = new int[n];  
        int j = 0;  
        for (int i=0; i<n-1; i++){
            if (arr[i] != arr[i+1]){
                tempA[j++] = arr[i];  
            }  
         }  
        tempA[j++] = arr[n-1];      
        for (int i=0; i<j; i++){
            arr[i] = tempA[i];  
        }  
        return j;  
    }  
       
    public static void main (String[] args) {
        int arr[] = {11,7,2,2,7,8,8,8,3}; 
        Arrays.sort(arr); 
        int length = arr.length;  
        length = remove_Duplicate_Elements(arr, length);   
        for (int i=0; i<length; i++)  
           System.out.print(arr[i]+" ");  
    }
}

输出:

2 3 7 8 11

正如所观察到的,未排序数组中的重复元素也以与排序数组相同的方式被删除。但在这里,使用了一种额外的方法对未排序的数组进行排序。

需要注意的是,应该检查数组是否已排序,然后进行下一步删除重复项。

上一篇:如何在 Java 中连接两个数组

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中连接两个数组

发布时间:2023/09/10 浏览次数:82 分类:Java

在本文中,我们将学习如何在 Java 中连接两个数组。可以根据需要使用不同的方法来完成此操作。在某些情况下,用户在合并数组之前也需要执行复制。根据要求。ArrayUtil.addAll() 方法连接 Jav

如何在 Java 中把整数列表转换为整数数组

发布时间:2023/09/10 浏览次数:157 分类:Java

在本文中,我们将介绍在 Java 中如何将整数列表 List<Integer> 转换为整数数组 int[]。我们可以看到,它们都是不同的数据类型,即整数的 ArrayList 和整数数组。前者包含一个对象数据类型即

Java 转换十六进制字符串为 Int

发布时间:2023/09/10 浏览次数:178 分类:Java

本文将介绍我们可以用来将十六进制字符串转换为 int 的三种方法。十六进制或十六进制是一个 16 基数的数字系统,即有 16 种可能的符号代表数字。用来表示数字的十六进制值是十进制中的

在 Java 中转换字符数组为整数

发布时间:2023/09/10 浏览次数:112 分类:Java

本文介绍了如何在 Java 中把字符数组转换为数组,并列举了一些示例代码来理解这个主题。数组是一个存储相同数据类型元素的容器。例如,一个整数组只能有整数类型的值。

在 Java 中将 Double 转换为 Int

发布时间:2023/09/10 浏览次数:137 分类:Java

本文介绍了如何在 Java 中将 double 转换为 int。double 类型用于存储浮点数,integer 类型用于存储非小数(整数)值。有几种方法可以将 double 类型转换为整数,例如类型转换,double 类的 intValue()

在 Java 中计算整数的幂

发布时间:2023/09/10 浏览次数:103 分类:Java

在本文中,我们将研究计算整数幂的各种方法。有用于此目的的标准方法。也可以使用循环以及 Java 库函数来实现。

在 Java 中计算整数的长度

发布时间:2023/09/10 浏览次数:106 分类:Java

在本文中,我们计算 Java 中整数的位数。在 Java 中使用 for 循环计算整数的长度 首先,我们将看到一个简单的迭代解决方案。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便