Java数组的去重

目录
  • 数组去重的场景
    • 1、ES6-set
    • 2、利用Map数据结构去重
    • 3、 嵌套循环+splice
    • 4、 forEach + indexOf
  • 总结

数组去重的场景

将数组var arr =[1,1,‘true',‘true',true,true,66,66,false,false,undefined,undefined, null,null, NaN, NaN, 0, 0, ‘a', ‘a',{},{}]中重复的值过滤掉

1、ES6-set

使用ES6中的set是最简单的去重方法

<script>
   var arr=[1,2,3,4,1,2,3]
   //先将数组转换为set
   var set=new Set(arr)
   //再将set转换为数组
   console.log(Array.from(set))
</script>

2、利用Map数据结构去重

创建一个空Map数据结构,遍历需要去重的数组,把数组的每一个元素作为key存到Map中。由于Map中不会出现相同的key值,所以最终得到的就是去重后的结果

function shuzu(arr) {
  let map = new Map();
  let array = new Array();  // 数组用于返回结果
  for (let i = 0; i < arr.length; i++) {
    if(map .has(arr[i])) {  // 如果有该key值
      map .set(arr[i], true);
    } else {
      map .set(arr[i], false);   // 如果没有该key值
      array .push(arr[i]);
    }
  }
  return array ;
}

3、 嵌套循环+splice

function shuzu(arr){
for(var i = 0 ; i < arr.length; i++){
for( var j = i + 1; j < arr.length; j++){
if( arr[i] === arr[j] ){
arr.splice(j,1);
}
}
}
return arr;
}

4、 forEach + indexOf

function shuzu(arr){
var res = [];
arr.forEach((val,index)=>{
if( res.indexOf(val) === -1 ){
res.push(val);
}
});
return res;
}

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Java实现的数组去重与排序操作详解

    本文实例讲述了Java实现的数组去重与排序操作.分享给大家供大家参考,具体如下: 这里演示Java实现数组去重.排序操作 文中的示例源码编写基于Jdk1.6+.junit4.8.2 java.util.Arrays.sort() 支持对int[],long[],short[],char[],byte[],float[],double[],Object[]进行排序 参考示例代码片段如下 // 声明int 数组,并初始化 int[] intArry = {5,4,7,8,2,0,1,9,3,6,10

  • java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】

    本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示Java正则表达式提取需要的字符并放入数组,即ArrayList数组去重复功能. 具体代码如下: package com.test.tool; import java.util.ArrayList; import java.util.HashSet; import java.util.regex.*; public class MatchTest { public static void ma

  • JavaScrip数组去重操作实例小结

    本文实例讲述了JavaScrip数组去重操作.分享给大家供大家参考,具体如下: 内置的for-of方法 <script> var arr=[2,1,1,3,'','','e','e',true,'true',true,false,false,'false',undefined,'undefined',undefined,null,'null',null]; function uniqueUseForOf(array) { const temp = []; //一个临时数组 // 传入值必须存在

  • Java数组的去重

    目录 数组去重的场景 1.ES6-set 2.利用Map数据结构去重 3. 嵌套循环+splice 4. forEach + indexOf 总结 数组去重的场景 将数组var arr =[1,1,'true','true',true,true,66,66,false,false,undefined,undefined, null,null, NaN, NaN, 0, 0, 'a', 'a',{},{}]中重复的值过滤掉 1.ES6-set 使用ES6中的set是最简单的去重方法 <script

  • GO语言对数组切片去重的实现

    目录 1.go中没有去重方法 2.自定义一个适配多个切片类型的去重器 补充: 通过map键的唯一性去重(推荐) 通过map键的唯一性去重 Go语言是2007年由Google开发的一种静态强类型的编译型语言,其语法结构上与C非常接近.在垃圾回收.错误处理以及包库方面比C要方便的多,因此从开发速度上来讲比C要快的多,而运行速度也接近于C语言.以下实现GO语言对数组切片去重 1.go中没有去重方法 自己实现 package main import (     "fmt" ) func mai

  • Java数组的基本学习教程

    Java数组声明.创建.初始化 一维数组的声明方式: type var[]; 或type[] var; 声明数组时不能指定其长度(数组中元素的个数), Java中使用关键字new创建数组对象,格式为: 数组名 = new 数组元素的类型 [数组元素的个数] 实例: TestNew.java: 程序代码: public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5]

  • Java数组模拟优先级队列数据结构的实例

    优先级队列 如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了.这样,我们就引入了优先级队列 这种数据结构. 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 .对于优先权相同的元素,可按先进先出次序处理或按任意优先

  • Java 数组分析及简单实例

    Java 数组  一.什么是数组 数组?什么是数组?在我印象中的数组是应该这样的:通过new关键字创建并组装他们,通过使用整形索引值访问它的元素,并且它的尺寸是不可变的! 但是这只是数组的最表面的东西!深一点?就是这样:数组是一个简单的复合数据类型,它是一系列有序数据的集合,它当中的每一个数据都具有相同的数据类型,我们通过数组名加上一个不会越界下标值来唯一确定数组中的元素. 还有更深的,那就是数组是一个特殊的对象!!(对于这个LZ理解的不是很好,对JVM也没有看,所以见解有限). 不管在其他语言

  • Java数组优点和缺点_动力节点Java学院整理

    数组是Java语言的基本知识之一,在深入学习Java基础后,我们都知道那些容器,在之后,在我们学习.工作的过程中基本就是使用容器了,很少很使用数组,那么为什么还要有数组呢,我也是今天才遇到这个问题,专门的找资料学习了一下. 数组与其他种类的容器之间的区别有三方面:效率.类型和保存基本类型的能力,当然现在有泛型,保存类型的区别已经不大了. 数组较容器,最大的优点就是效率.在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式,数组就是一个简单的线性序列,这使得元素访问非常快速,无论使用

  • Java数组操作的10大方法

    1.定义一个Java数组 String[] aArray = new String[5]; String[] bArray = {"a","b","c", "d", "e"}; String[] cArray = new String[]{"a","b","c","d","e"}; 第一种是定义了一个数组,并

  • Java数组越界问题实例解析

    Java中数组初始化和OC其实是一样的,分为动态初始化和静态初始化, 动态初始化:指定长度,由系统给出初始化值 静态初始化:给出初始化值,由系统给出长度 在我们使用数组时最容易出现的就是数组越界问题,好了,这里有个简单的例子 int [][] array = {{1,2,3},{1,4}}; System.out.println(array[1][2]); 这是一个二维数组,很明显,数组越界了,控制台中会打印如下信息: Exception in thread "main" java.l

  • Java数组,去掉重复值、增加、删除数组元素的方法

    如下所示: import java.util.List; import java.util.ArrayList; import java.util.Set; import java.util.HashSet; public class lzwCode { public static void main(String [] args) { testA(); System.out.println("==========================="); testB(); System

  • 总结Javascript中数组各种去重的方法

    前言 在做javascript开发的时候,经常会遇到数组元素重复的问题,而javascript Array又没有直接提供方法解决此问题,还需要自己去实现.这篇文章总结了Javascript中数组各种去重的方法,下面来一起看看. 方法一 利用对象属性不重复的特性 Array.prototype.distinct = function (){ var arr = this, i, obj = {}, result = [], len = arr.length; for(i = 0; i< arr.l

随机推荐