精华内容
下载资源
问答
  • java数组中删除元素或一个数组元素

    千次阅读 2020-03-13 17:55:47
    java数组中删除元素或一个数组元素删除数组中单个元素删除数组多个元素(数组表示) 这里直接介绍两种情况: 1、删除数组中单个元素 2、删除数组多个元素(数组表示) 删除数组中单个元素 1、 新建一个数组, 将...


    这里直接介绍两种情况:
    1、删除数组中单个元素
    2、删除数组中多个元素(数组表示)

    删除数组中单个元素

    1、
    新建一个数组,
    将原数组中值写入新数组时进行判断是否为要删除的元素,
    如果是就直接跳过进行下一个循环,
    否则直接写入新数组,
    最后将新数组赋值给原数组
    以下给出简要代码

    //ints是原数组,temp是新数组,err是要删除的元素 
    	j=0for(int in: ints){
    		if(int == err)
    			continue;
    		else
    			temp[j++] = in;
    	}
    	ints=temp
    

    2、
    比较常见的遍历一遍数组,
    找到需要删除的元素,(这只限于删除第一个找到err元素,如果需要删除数列中全部的err元素,看代码中注释)
    后面所有的元素向前一个位置覆盖之前的元素,达到删除元素的效果
    以下是完整的函数代码
    (为了达到统一输出的效果,加了一个flag判定是否删除)

    public static int[] delete(int[] ints,int err) {
    		boolean flag = false;
    		int length = ints.length;
    		//这里只进行了找到第一个需要删除元素位置,
    		//并用后面的元素逐次向前覆盖,并不是真正的删除
    		//(删除是通过底下重新建立数组赋值进行的)
    		for(int i = 0; i < length; i++) {
    			if(err == ints[i]) {
    				for(int j = i; j < length - 1; j++) {
    					ints[j] = ints[j + 1];
    				}
    				length--;
    				flag = true;
    				break;//如果要删除全部的err元素 这里改为 i--;
    				//为了防止相邻相同的情况
    			}
    		}
    		if (flag)
    			System.out.println("删除" + err + "成功!");
    		else
    			System.out.println("输入err有误,不存在" + err +",无法删除");
    		
            //将删除后数组进行重新保存 并返回
            int[] result = new int[length];
            System.arraycopy(ints,0,result,0,length);
            return result;
    	}
    

    删除数组中多个元素(数组表示)

    新建一个数组
    将原数组写入新数组的同时对写入的元素进行判断是否在需要删除的数组中
    运用flag进行标记是否需要写入(即该元素是否在需要删除的数组中)
    通过fiag的标识,在新的数组中写入元素,
    最后将中间的temp数组通过copy再返回,原因是 删除元素后的数组长度是需要测量出来的,即为代码中的index。

    //在ints数组中删除包含res数组元素
        public static int[] delete(int[] ints,int[] errs) {
            int index = 0;
            int[] temp = new int[ints.length];
            //通过foreach的循环只能够进行遍历 并不能进行删除修改操作
            for (int in: ints){
                boolean flag = true;
                for (int err: errs)
                    if (in == err){
                        flag = false;
                        break;
                    }
                if(flag)
                    temp[index++]=in;
            }
            //将中间保存的temp数组进行重新保存(删除后面多余的长度) 并返回
            //index 也代表着长度 因为在每次获取值后++了
            //所以最终是比实际下标多1
            int[] result = new int[index];
            System.arraycopy(temp,0,result,0,index);
            return result;
        }
    

    另外也可以通过万能的Arrays.asList(ints) 将数组转化为list ,然后就直接运用循环加上remove函数删除就好了。

    附上一段测试的代码

    
        public static void main(String[] args) {
            int[] ints = new int[10];//初始数组
            for (int i = 0; i < ints.length; i++){
                ints[i] = i;
            }
            int[] err = new int[3];//初始数组
            for (int i = 0; i < err.length; i++){
                err[i] = i + 1 ;
            }
            err[2] = 52;//测试一下err不在ints中
            int[] result = delete(ints,err);
            System.out.println(Arrays.toString(err));
            System.out.println(Arrays.toString(ints));
            System.out.println(Arrays.toString(result));
        }
    

    以及结果:
    在这里插入图片描述

    第一篇博客,纪念一下🐶
    然而 各种小bug挺多的 第三次修改了。

    以下是最初的时候,直接进行写的,没有写方法。

      public static void main(String[] args) {
            int[] res = new int[2];//要求删除的元素值
            for (int i = 0; i < res.length; i++){
                res[i]=i + 2;
            }
    		int err = 5;
            int j = 0;
            int[] temp = new int[8];//用来存放新元素的数组
    		//在ints数组中删除包err元素
    		for(int in: ints){
    			if(int == err)
    				continue;
    			else
    				temp[j++] = in;
    		}
    		j = 0;
    		 for (int te: ints){
                System.out.println(te);
            }
    		
    		//在ints数组中删除包含res数组元素
            for (int in: ints){
                boolean flag = true;
                for (int re: res)
                    if (in == re)
                        flag = false;
                if(flag)
                    temp[j++]=in;
            }
            ints = temp;
    	
            for (int te: ints){
                System.out.println(te);
            }
        }
    

    这应该是结局了把enmmm

    展开全文
  • // 从一个数组中删除一个数组中存在的元素 let arr = [{ id: 1 }, { id: 11 }, { id: 3 }], to_remove=[{ id: 22 }, { id: 11 }]; // 从数组arr中删除数组to_remove存在的元素 new_arr = arr.filter((x) => !...

    // 从一个数组中删除另一个数组中存在的元素
    let arr = [{ id: 1 }, { id: 11 }, { id: 3 }], to_remove=[{ id: 22 }, { id: 11 }];
    // 从数组arr中删除数组to_remove中存在的元素
    new_arr = arr.filter((x) => !to_remove.some((item) => x.id === item.id));

    展开全文
  • 一次性删除一个数组中多个元素

    千次阅读 2018-11-13 10:52:59
    以下两种方法可以正常删除一个数组中多个指定元素 1、filter let arr = [1, 3, 5, 7, 9]; arr = arr.filter(item =&gt; item !== 5); 2、逆向循环(从尾部开始向前查找,这样还没有被查到的元素位置也不会被...

    正常的循环删除,在删除第一个的时候数组内元素的下标已经被改变,所以无法使用常规的循环删除。以下两种方法可以正常删除一个数组中多个指定元素

    1、filter

    let arr = [1, 3, 5, 7, 9];
    arr = arr.filter(item => item !== 5);

    2、逆向循环(从尾部开始向前查找,这样还没有被查到的元素位置也不会被改变)

    let arr = [2, 3, 5, 7];
    for (let i = arr.length - 1; i >= 0; i--) {
        if (arr[i] === 5) {
            arr.splice(i, 1);
        }
    }

     

    展开全文
  • 删除一个有序数组中的重复元素

    千次阅读 2018-07-31 23:08:34
    题目来自leetcode初级算法的数组 ...然后再把数组中的有效元素移动位置就可以了。使用C语言实现如下: int removeDuplicates(int* nums, int numsSize) { int temp = nums[0]; int count = 1; in...

    题目来自leetcode初级算法的数组

    • 方案一

    因为这个数组是有序的,所以删除的时候可以这样做。使用最小数字减去1来标记作为被删除掉的元素。然后再把数组中的有效元素移动位置就可以了。使用C语言实现如下:

    int removeDuplicates(int* nums, int numsSize) {
        int temp = nums[0];
    	int count = 1;
    	int j;
        if(0 == numsSize)                //若没有数组,则返回0
        {
            count = 0;
        }
    	else
        {
            for (int i = 1; i < numsSize; i++)
    	{
    		if (temp == nums[i])
    		{
    			nums[i] = nums[0] - 1;	//标记删除
    		}
    		else
    		{
    			temp = nums[i];
    			count++;                //纪录删除后的元素个数
    		}
    	}
    	for (int i = 1; i < numsSize; i++)
    	{
    		if (nums[0] - 1 == nums[i]) //删除掉的元素
    		{
    			for (j = i + 1; nums[0] - 1 == nums[j] && j < numsSize; j++);//下一个有效元素
    			if (nums[0] - 1 != nums[j] && j < numsSize)
    			{
    				nums[i] = nums[j]; //移动它
    				nums[j] = nums[0] - 1;//删除它
    			}
    		}
    	}
        }
    	return count;
    }

    这样做其实比较麻烦的。我提交了之后看了一下解法,使用的办法比较简单。

    • 方案二

    只去看它后面的元素是否有和它相同,若有相同则把该元素移动到当前位置的下一个位置即可。然后继续向后找看是否有相同的元素。该算法也是简单的,比较易理解的。

    int removeDuplicates(int* nums, int numsSize) {
        int i = 1;
        if(0 == numsSize)
        {
            i = 0;
        }
        else
        {
            for(int j = 1; j < numsSize; j++)
            {
                if(nums[j] != nums[i])
                {
                    i++;
                    nums[i] = nums[j];
                }
            }
        }
        return i;
    }

     

    展开全文
  • var a = [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }]; var b = [15, 3]; a = a.filter(function (item) { return b.indexOf(item.id) < 0; }) console.log(a); ...
  • 将已经添加的图片的图片ID合为一个数组,然后全部图片的数据使用filter过滤 let arr=this.pictrueList.map(ee=>ee.picture_id) this.companyVideoList=res.data.filter(ee=>!arr.includes(ee.id)) 这样就...
  • 出现此问题的原因就是两个数组来源于同一个对象的指针引用,所以在对其中一个数组进行操作的时候,才会影响到另一个同源的数组 解决办法很简单,只要深拷贝一下 就可以消除 同源的影响 this.data= JSON.parse(JSON....
  • 存在一个数组数组中元素为 int[] array = {1, 3, 5, 7, 9, 11, 13, 15, 17, 0}; 要求 1. 0是无效元素,仅占位使用 2. 当前数组中【有效元素】个数为9 需求 在该数组中的指定下标位置放入指定...
  • pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法更改数组的长度。该方法会改变原数组。 let numbers = [1, 2, 3, 4]; numbers.pop(); console.log(numbers);//[1, 2, 3] shift()方法从数组中删除第...
  • JavaScript实现给定两个数组,将第二个数组与第一个数组重复得元素,从第一个数组中删除。 首先 今天碰到一个这么个算法题,拿到题之后,脑子里就出现了关于数组的函数 splice(index,howmany,item1,…,itemX) ...
  • C 删除一个数组中重复的元素

    万次阅读 2016-01-08 18:50:23
    删除一个数组中重复的元素。例如 : input : 1,2, 2,2,3,3,3,4,4,5,5,5,6,6,6 output: 1,2,3,4,5,6实现代码:#include #include #define N 100int delete_elem(int arr[], int new_arr[]) { int i = 0, new_ar
  • 一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。 程序要求: 输入:整型数组中元素个数及各个元素。 输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。 import java....
  • var a = [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }]; var b = [15, 3]; a = a.filter(function (item) { return b.indexOf(item.id) < 0; }) ...console.lo...
  • es6 删除数组指定元素

    万次阅读 2018-12-14 14:46:14
    arr.splice(arr.findIndex(item =&gt; item.id === id), 1) //item 只是参数可以写成 i 或者 v 都可以 , ...//=== 后面的id是你想要删除元素的id号,同理,如果你数组里面写的是num,那这里...
  • //从数组中删除元素方法 private int arrayTotal=0; Pet[] pets=new Pet[10]; pets[1]=dog; pets[2]=cat; pets[3]=pig; //如果想删除第二个元素cat for(int i=0;i;i++){ for(int j=2;j;j++){ if(j+1<pe
  • 数组中删除一个元素

    2019-05-19 20:22:49
    如何在数组中指定删除一个元素? 小白代码献丑献丑 /** * 扩充int数组长度,原有元素不改变 * @param arr 接受一个int类型数组 * @param length 接受一个int数表示需要扩充的长度 * @return 返回一个扩充后的新...
  • 如何删除数组中一个元素

    万次阅读 2018-09-17 18:10:17
    种:删除数组中指定位置的元素:  方法: import java.util.Arrays; import java.util.Scanner; public class test { public static void main(String[] args) { int []n=new int[] {1,2,3}; ...
  • 如何从一个数组中删除一个元素在C#

    千次阅读 2019-11-07 16:03:14
    让我说我有这个数组, int[] numbers = {1, 3, 4, 9, 2}; 如何通过“name”删除元素? ,让我们说数字4? 甚至ArrayList没有帮助删除? string strNumbers = " 1, 3, 4, 9, 2"; ArrayList numbers = new ...
  • jQuery 判断是否包含在数组中 jQuery.inArray(): ... $.inArray(“js”, arr); //返回 3, ...在前提不知道b在这个数组的下标,删除b这个元素 var arrList = [‘a’,‘b’,‘c’,‘d’]; arrList.splice(j...
  • 【算法】删除一个数组中为0的元素

    千次阅读 2018-10-21 17:50:14
    给定一个一维数组,将其中为0的元素删除掉,非零元素的相对位置保持不变,最终目标数组保留在原数组中,并且目标数组长度之外的元素全部置为0。 解题思路: (1)数组非零元素往前移动,时间复杂度O(n)。 思路:...
  • c++删除、增加一个数组元素

    千次阅读 2020-07-01 10:04:20
    删除某个数组元素只要将它后面的元素向前挪一个位置就可以了,将要删除一个元素覆盖。 int delete_arr(int *a,int pos,int n){ //pos为要删除的数组下标,n表示当前有多少个元素。 int i; for(i=pos;i<n...
  • JS 数组删除一个元素

    万次阅读 2019-05-14 14:12:29
    JS 删除数组中一个元素 方式一: 在Array原型对象上添加删除方法 // 查找指定的元素数组中的位置 Array.prototype.indexOf = function(val) { for (var i = 0; i < this.length; i++) { if (this[i] =...
  • 循环删除数组中元素的正确方法

    千次阅读 2018-09-12 11:03:27
    循环删除数组中元素的正确方法 提起循环删除数组中元素,最先想到的就是使用for循环和数组的splice方法来实现(正序循环删除方法),如下代码用来实现删除数组中大于2的元素: let arr = [1, 2, 3, 4, 5, 4,...
  • 工作经常遇到一个数组列表需要过滤掉另外另外一个数组元素,剩下的组成一个新的数组,思路就是利用数组的filter方法,将判断的属性如例子的name属性放到一个判断数组,然后利用filter方法过滤即可 <!DOCTYPE ...
  • js删除数组中元素,改变下标问题

    千次阅读 2019-11-05 17:26:01
    js删除数组中元素,改变下标问题 js删除数组中元素,改变下标问题 方法: 使用标识flag for(var i=0,flag=true,len=this.fuzzyQueryList.length;i<len;flag ? i++ : i){ if(fatherName == list.fatherName &...
  • 删除数组 /删除数组 1 int[] arr={1,2,3,4,5,6,7,8,9,10,0,0,0,0}; 2 删除元素5对应的位置上的元素,并将所有的元素前移 3 先找出要删除的位置用p进行标记赋值,然后从p点开始移动元素,判断元素为0时候停止调换 4....
  • 分析:创建一个数组,循环遍历,只要新数组中有老数组的值,就不用再添加了。 参考链接 JavaScript语法基础:数组的常用方法详解
  • jquery 数组元素个数 简单JavaScript代码段可删除数组的第一个元素。 您也可以轻松删除数组的最后一个元素。 只需使用JavaScript array.shift()和array.pop()方法即可。 这些方法改变了数组的长度! var ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 571,800
精华内容 228,720
关键字:

删除一个数组中的元素