返回

掌握多维度的去重技巧,清理无用数据,提升数组高效性

前端

JavaScript中的数组去重方法

  1. 使用Set数据结构

Set是一种内置的数据结构,可以自动剔除重复元素。我们可以先将数组中的元素转为Set,再将其转回数组即可实现去重。

const arr = [1, 2, 3, 4, 1, 2, 5];
const uniqueArr = [...new Set(arr)];
console.log(uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用Array.prototype.filter()方法

filter()方法可以对数组中的元素进行过滤,我们可以利用这一点来实现数组去重。

const arr = [1, 2, 3, 4, 1, 2, 5];
const uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用Array.prototype.reduce()方法

reduce()方法可以将数组中的元素逐个累积成一个值,我们可以利用这一点来实现数组去重。

const arr = [1, 2, 3, 4, 1, 2, 5];
const uniqueArr = arr.reduce((acc, item) => {
  if (!acc.includes(item)) {
    acc.push(item);
  }
  return acc;
}, []);
console.log(uniqueArr); // [1, 2, 3, 4, 5]

PHP中的数组去重方法

  1. 使用array_unique()函数

array_unique()函数可以自动剔除数组中的重复元素。

$arr = [1, 2, 3, 4, 1, 2, 5];
$uniqueArr = array_unique($arr);
print_r($uniqueArr); // [1, 2, 3, 4, 5]
  1. 使用array_filter()函数

array_filter()函数可以对数组中的元素进行过滤,我们可以利用这一点来实现数组去重。

$arr = [1, 2, 3, 4, 1, 2, 5];
$uniqueArr = array_filter($arr, function($item) {
  return array_search($item, $arr) === array_key_first($arr, $item);
});
print_r($uniqueArr); // [1, 2, 3, 4, 5]

C++中的数组去重方法

  1. 使用set容器

set容器是一种可以自动剔除重复元素的容器。我们可以先将数组中的元素转为set,再将其转回数组即可实现去重。

#include <iostream>
#include <set>
#include <vector>

using namespace std;

int main() {
  vector<int> arr = {1, 2, 3, 4, 1, 2, 5};
  set<int> uniqueArr(arr.begin(), arr.end());
  vector<int> uniqueArr2(uniqueArr.begin(), uniqueArr.end());

  for (int i = 0; i < uniqueArr2.size(); i++) {
    cout << uniqueArr2[i] << " ";
  }

  return 0;
}
  1. 使用unique()算法

unique()算法可以对数组中的元素进行排序并剔除重复元素。

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
  vector<int> arr = {1, 2, 3, 4, 1, 2, 5};
  sort(arr.begin(), arr.end());
  auto it = unique(arr.begin(), arr.end());
  arr.erase(it, arr.end());

  for (int i = 0; i < arr.size(); i++) {
    cout << arr[i] << " ";
  }

  return 0;
}

Java中的数组去重方法

  1. 使用HashSet数据结构

HashSet是一种可以自动剔除重复元素的集合。我们可以先将数组中的元素转为HashSet,再将其转回数组即可实现去重。

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> arr = Arrays.asList(1, 2, 3, 4, 1, 2, 5);
        HashSet<Integer> uniqueArr = new HashSet<>(arr);
        List<Integer> uniqueArr2 = new ArrayList<>(uniqueArr);

        for (int i = 0; i < uniqueArr2.size(); i++) {
            System.out.print(uniqueArr2.get(i) + " ");
        }
    }
}
  1. 使用Arrays.stream().distinct().toArray()方法

Arrays.stream().distinct().toArray()方法可以对数组中的元素进行过滤并剔除重复元素。

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> arr = Arrays.asList(1, 2, 3, 4, 1, 2, 5);
        Integer[] uniqueArr = arr.stream().distinct().toArray(Integer[]::new);

        for (int i = 0; i < uniqueArr.length; i++) {
            System.out.print(uniqueArr[i] + " ");
        }
    }
}

结语

数组除重复项是一种常见的数据处理操作,掌握多种去重方法可以帮助您在不同的编程语言中轻松实现这一操作,提升程序的性能和效率。希望本文能对您有所帮助,也欢迎您在评论区分享您的去重技巧和经验。