java数组中删除元素或一个数组元素

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

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

删除数组中单个元素

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

//ints是原数组,temp是新数组,err是要删除的元素 j=0;for(int in: ints){if(int == err)continue;elsetemp[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 + "成功!");elseSystem.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 也代表着长度 因为在每次获取值后++了//所以最终是比实际下标多1int[] 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));}

以及结果:

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

  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;elsetemp[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);}}

java数组中删除元素或一个数组元素相关推荐

  1. vue+js 从一个数组中删除在另一个数组中已存在对象;

    数组,对象常用的删除方法: 1.根据一个数组元素,删除另一个数组中的对象: var a = [{ id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 1 ...

  2. js将数组中相同项放在一个数组

    js将数组中相同项放在一个数组 原本数组长这样:图一 想将数组中相同项放在一个数组 得到:图二 转换中也可以得到:图三 方法: sortArr(arr, str) {var _arr = [],_t ...

  3. js从一个数组中筛选出另一个数组中存在的值

    js从一个数组中筛选出另一个数组中存在的值 这里从arr中筛选arr1中存在的值,arr2为筛选结果数组 let arr=["1","2","3&qu ...

  4. c语言将数组中奇数放在另一个数组,把数组中所有的奇数放在另一个数组中返回...

    满意答案 asd2257665 2013.12.20 采纳率:49%    等级:12 已帮助:7193人 #define N 10 main() {int i,j,k,a[N],b[N]; prin ...

  5. 从PHP中的数组中删除元素

    有没有一种简单的方法可以使用PHP从数组中删除元素,以便foreach ($array)不再包含该元素? 我认为将其设置为null可以做到,但是显然不起作用. #1楼 如果您有一个数字索引的数组,其中 ...

  6. java 中数组中删除元素_java数组中删除元素的操作

    我们在学习数组的开始,就明确过初始的长度是不可变化的.但是在实际的使用中,难免会涉及到对数组的改动.本篇我们带来的是在数组中删除元素的方法:remove和索引.相信这两种概念大家都不陌生,那么结合了数 ...

  7. java从数组中删除元素(数组的缩容)

    java从数组中删除元素(数组的缩容) 1,解决方案一 /* * 数组的缩容(删除元素) * 第一种解决方案 * 移动元素,被删除元素后面的元素往前移一位 * 优点:不需要创建新数组,省内存,速度快 ...

  8. 在 PHP 中从数组中删除一个元素

    问: 有没有一种简单的方法可以使用 PHP 从数组中删除一个元素,从而使 foreach ($array) 不再包含该元素? 我认为将它设置为 null 会做到这一点,但显然它不起作用. 答1: hu ...

  9. Java中如何打印出一个数组中所有元素呢?

    转自: Java中如何获取出一个数组中最大元素值呢? 数组简介: 数组(Array)是有序的元素序列.若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为 ...

最新文章

  1. [转】:VS 2010 : 如何开发和部署Outlook 2010插件(Add-in)
  2. VIM配置(不用这么麻烦了,文章尾部附带他人写得脚本安装)
  3. 最简单的打造淘宝商品爆款步骤
  4. 音乐计算机怎么用,如何利用电脑录制自己的歌曲(音乐)
  5. 利用iTextSharp对PDF进行签名(E-signing PDF documents with iTextSharp)--推荐
  6. web安全day12:PKI
  7. 华为手机投屏电脑_手机投屏干货分享:华为如何投屏到电视机?
  8. 2021年11月_IEEE TRANSACTIONS ON MEDICAL IMAGING_科技前言热点调研表
  9. android nexus 刷机工具包,Android Nexus 6p刷机及root
  10. mysql触发器更新前触发_mysql触发器实例:更新前触发
  11. 1s看懂555定时器,以及应用?
  12. Hadoop MR 分区(partition)和全排序(WritableComparable)
  13. python 编写的 pdf 裁剪工具 删除空白页
  14. 【哈士奇赠书活动 - 22期】-〖ChatGPT时代:ChatGPT全能应用一本通〗
  15. 基于Spring Boot 2.5.1 微服务框架发布(Eurynome Cloud )
  16. P4:正则表达式(Regular Expression)学习笔记
  17. 【跨境必备】五分钟学会设定Facebook Chatbot
  18. android 根目录 文件 打包,Android image文件的打包和解包
  19. 嵌入式软件工程师 面试题 (持续更新中)
  20. [C]成员运算符.和间接成员运算符-浅析

热门文章

  1. 本科生学习GNSS算法 中级教程(三)- rtklib多系统多频单点定位算法 - 多频残差计算以及新增配置
  2. 从零开始做3D地图编辑器 基于QT与OGRE
  3. collapse在PHP中是什么意思,在PHP中全面禁止SQL注进式攻击之二
  4. FARROW 滤波器
  5. 如何用python完成评分功能呢_用Python完成PSM(倾向性匹配评分)算法详解
  6. 复变函数与积分变换期末试题带答案
  7. 脑洞神器Creator手写识别组件,三分钟上手!
  8. 原生JS实现文件自定义位置盖章功能并导出PDF
  9. 深度学习部署--搭建后台服务器
  10. Python-英文小说词频统计(傲慢与偏见)