Java 从数组中删除一个元素的所有出现次数

Java 从数组中删除一个元素的所有出现次数

给定一个数组和一个键,任务是在Java中删除数组中所有指定键的出现。例子。
输入: array = { 3, 9, 2, 3, 1, 7, 2, 3, 5 }, key = 3
输出: [9, 2, 1, 7, 2, 5]

输入: array = { 10, 20, 10, 30, 50, 10 }, key = 10
输出: [20, 30, 50]

使用Arrays.copyOf :

// Java program remove all occurrences
// of an element from Array using naive method
 
import java.util.Arrays;
 
class GFG {
 
    // function to remove all occurrences
    // of an element from an array
    public static int[] removeElements(int[] arr, int key)
    {
        // Move all other elements to beginning
        int index = 0;
        for (int i=0; i<arr.length; i++)
            if (arr[i] != key)
                arr[index++] = arr[i];
 
        // Create a copy of arr[]
        return Arrays.copyOf(arr, index);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        int[] array = { 3, 9, 2, 3, 1, 7, 2, 3, 5 };
        int key = 3;
        array = removeElements(array, key);
        System.out.println(Arrays.toString(array));
    }
}

输出

[9, 2, 1, 7, 2, 5]

时间复杂度: O(n)

空间复杂度: O(n)

使用Java 8 Stream

  1. 获取数组和键。
  2. 过滤列表中等于给定键的所有元素
  3. 将列表转换为数组并返回。

使用Java ArrayList

  1. 获取数组和键。
  2. 创建一个空的ArrayList
  3. 将数组中的所有元素插入到列表中,除了指定的键。
  4. 将列表转换为数组并返回。

替代方法

  1. 首先创建一个数组的列表。
  2. 删除数组中的所有元素到列表中,这些元素是指定的键。
  3. 将该列表转换回数组并返回。

使用List.removeAll()

  1. 首先创建一个空的数组列表。
  2. 将数组中的所有元素插入到列表中
  3. 删除所有你想删除的元素
  4. 将列表转换为数组并返回。

使用List.removeIf()

  1. 首先创建一个空的数组列表。
  2. 将数组中的所有元素插入列表中
  3. 使用equals()方法删除所有你想删除的元素
  4. 将列表转换为数组,并将其返回。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程