java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]

java数组删除元素_java中删除 数组中的指定元素方法[通俗易懂]java中删除数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除数组中的指定元素的例子。java的api中,并没有提供删除数组中元素的方法。虽然数组是一个对象,不过并没有提供add()、remove()或查找元素的方法。这就是为什么类似ArrayList和HashSet受欢迎的原因。不过,我们要感谢ApacheCommonsUtils,我…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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中删除 数组中的指定元素方法全部内容了,希望大家多多支持脚本之家~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169512.html原文链接:https://javaforall.net

(2)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 404 html代码,不懂代码,如何制作漂亮的404页面【新手简易教程】

    404 html代码,不懂代码,如何制作漂亮的404页面【新手简易教程】404是用户在访问页面时,搜索引擎常返回的状态码,常见的还有200,301,302,500等。搜索引擎通过http状态码识别网页状态,404状态码,常指所访问的页面不存在或已被删除。404页面,是用户访问不存在内容或者已删除网页时,呈现给用户的界面,又称404错误页面/404-NotFound。404页面常见误区①网站没有设置404页面404错误页面对用户而言:告诉浏览者其所请求的页面不存在或链…

    2022年7月27日
    60
  • 数据结构–最小生成树详解[通俗易懂]

    数据结构–最小生成树详解[通俗易懂]前言Awisemanchangeshismind,afoolnever.Name:WillamTime:2017/3/11、什么是最小生成树现在假设有一个很实际的问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网?于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n

    2025年7月2日
    1
  • 写一个 docker 打击一系列手册

    写一个 docker 打击一系列手册

    2022年1月2日
    34
  • 字符串的匹配算法_多字符串匹配

    字符串的匹配算法_多字符串匹配文章目录BF算法RK算法编辑器中的全局替换方法:BM算法坏字符好后缀规则代码实现KMP算法一说到字符串匹配算法,不知道会有多少小伙伴不由自主的想起那个kmp算法呢?想到是很正常的,谁让它那么优秀呢。BF算法不要被事物的表面现象所迷惑,这个算法全称:BruteForce,有个拉风的中文名:暴力匹配算法。能想明白了吧。如果模式串长度为m,主串长度为n,那在主串中,就会有n-m+1个长度为m的子串,我们只需要暴力地对比这n-m+1个子串与模式串,就可以找出主串与模式串匹配的子串。.

    2022年8月21日
    3
  • 导出Excel在GridView1.RenderControl报错

    导出Excel在GridView1.RenderControl报错导出Excel在GridView1.RenderControl报错(2008-11-2412:24:42)标签:导出excel问题 it  今天做Gridview导出Excel时,出现了以前没有的问题,我以前做过很多次导出Excel的工作,知道出现报错类型“GridView”的控件“GridView1”必须放在具有runat

    2022年7月20日
    13
  • java测试案例编写方法_java实现自动化测试实例

    java测试案例编写方法_java实现自动化测试实例1.定义一个测试类(测试用例)1.1测试类名:被测试类的名字+Test比如UserServiceImplTest1.2测试类的包名:最后以.test结尾比如xxx.xx.test2.测试类中的测试方法2.1test+方法名比如testAdd2.2返回值建议void因为独立运行没有调用返回值没有意义2.3同上没有调用自然也不会有人传参参数建议…

    2022年10月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号