java中删除 数组中的指定元素方法

发布时间 - 2026-01-10 22:28:23    点击率:

java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子。

java的api中,并没有提供删除数组中元素的方法。虽然数组是一个对象,不过并没有提供add()、remove()或查找元素的方法。这就是为什么类似ArrayList和HashSet受欢迎的原因。

不过,我们要感谢Apache Commons Utils,我们可以使用这个库的ArrayUtils类来轻易的删除数组中的元素。不过有一点需要注意,数组是在大小是固定的,这意味这我们删除元素后,并不会减少数组的大小。

所以,我们只能创建一个新的数组,然后使用System.arrayCopy()方法将剩下的元素拷贝到新的数组中。对于对象数组,我们还可以将数组转化为List,然后使用List提供的方法来删除对象,然后再将List转换为数组。

为了避免麻烦,我们使用第二种方法:

我们使用Apache commons库中的ArrayUtils类根据索引来删除我们指定的元素。

Apache commons lang3下载地址:
http://commons.apache.org/proper/commons-lang/download_lang.cgi

下载好后,导入jar。

import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
/**
 *
 * Java program to show how to remove element from Array in Java
 * This program shows How to use Apache Commons ArrayUtils to delete
 * elements from primitive array.
 *
 */
public class RemoveObjectFromArray{
  public static void main(String args[]) {
         
    //let's create an array for demonstration purpose
    int[] test = new int[] { 101, 102, 103, 104, 105};
   
    System.out.println("Original Array : size : " test.length );
    System.out.println("Contents : " Arrays.toString(test));
   
    //let's remove or delete an element from Array using Apache Commons ArrayUtils
    test = ArrayUtils.remove(test, 2); //removing element at index 2
   
    //Size of array must be 1 less than original array after deleting an element
    System.out.println("Size of array after removing an element : " test.length);
    System.out.println("Content of Array after removing an object : "
              Arrays.toString(test));
   
  }
 
}
Output:
Original Array : size : 5
Contents : [101, 102, 103, 104, 105]
Size of array after removing an element : 4
Content of Array after removing an object : [101, 102, 104, 105]

当然,我们还有其他的方法,不过使用已经的库或java api来实现,更快速。

我们来看下ArrayUtils.remove(int[] array, int index)

方法源代码:

 public static int[] remove(int[] array, int index) {
    return (int[])((int[])remove((Object)array, index));
  }

在跳转到remove((Object)array, index)) ,源代码:

private static Object remove(Object array, int index) {
    int length = getLength(array);
    if(index >= 0 && index < length) {
      Object result = Array.newInstance(array.getClass().getComponentType(), length - 1);
      System.arraycopy(array, 0, result, 0, index);
      if(index < length - 1) {
        System.arraycopy(array, index 1, result, index, length - index - 1);
      }
      return result;
    } else {
      throw new IndexOutOfBoundsException("Index: " index ", Length: " length);
    }
  }

这下明白了ArrayUtils的删除数组中元素的原理了吧。其实还是要用到两个数组,然后利用System.arraycopy()方法,将除了要删除的元素外的其他元素都拷贝到新的数组中,然后返回这个新的数组。

以上就是小编为大家带来的java中删除 数组中的指定元素方法全部内容了,希望大家多多支持~


# 删除数组中指定元素  # Java数组去重复的18种方法示例  # Java数组的去重  # JavaScrip数组去重操作实例小结  # Java实现的数组去重与排序操作详解  # java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】  # JavaScrip数组删除特定元素的几种方法总结  # Java对int[]数组做新增删除去重操作代码  # 组中  # 来实现  # 小编  # 源代码  # 到新  # 是一个  # 是在  # 还可以  # 下载地址  # 这就是  # 其他的  # 我们可以  # 要用  # 这下  # 受欢迎  # 很清楚  # 种方法  # 转化为  # 转换为  # 方法来 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 三星网站视频制作教程下载,三星w23网页如何全屏?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  java中使用zxing批量生成二维码立牌  公司网站制作需要多少钱,找人做公司网站需要多少钱?  zabbix利用python脚本发送报警邮件的方法  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  北京企业网站设计制作公司,北京铁路集团官方网站?  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  canvas 画布在主流浏览器中的尺寸限制详细介绍  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何快速上传建站程序避免常见错误?  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  公司门户网站制作流程,华为官网怎么做?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  如何快速生成专业多端适配建站电话?  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  Laravel如何配置Horizon来管理队列?(安装和使用)  Laravel怎么使用artisan命令缓存配置和视图  Laravel如何使用Service Container和依赖注入?(代码示例)  Swift中循环语句中的转移语句 break 和 continue  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  如何用美橙互联一键搭建多站合一网站?  html5的keygen标签为什么废弃_替代方案说明【解答】  制作旅游网站html,怎样注册旅游网站?  JavaScript模板引擎Template.js使用详解  魔方云NAT建站如何实现端口转发?  在centOS 7安装mysql 5.7的详细教程  Laravel如何使用Sanctum进行API认证?(SPA实战)  如何利用DOS批处理实现定时关机操作详解  Laravel中的Facade(门面)到底是什么原理  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  EditPlus中的正则表达式 实战(4)  如何获取免费开源的自助建站系统源码?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  JavaScript如何实现路由_前端路由原理是什么  成都品牌网站制作公司,成都营业执照年报网上怎么办理?