java中 如何在一个数组中删除里面的元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中 如何在一个数组中删除里面的元素相关的知识,希望对你有一定的参考价值。

例如数组 int arrys=1,2,3,4,5,
如何删除“3”这个元素,可以用free吗?怎么用?
求大神解答

我的思路是 先循环遍历这个数组 用equals方法判断是否含有内容符合要求的元素 如果找到了 要记录下索引 定义一个中间变量temp 利用这个索引 把要删除的那个元素和数组最后一个元素交换位置 然后用java.util.Arrays类中的copy方法 该方法是数组复制的方法 有两个参数 一个是复制的元数组 一个是复制元素的个数 你在第二个参数那改成比原来数组少1 这样就删除了

不过java不是还有一个更好的数据结构叫集合 数组这样操作是不是很恶心? 这种场合你完全可以用List集合代替
参考技术A

    这种题,其实是考察你对数组的理解。

    实际工作上,一般用List。区别在于,List可动态分配空间,数组长度是定死的。

    List其实是对数组的封装,底层也是数组。

    解决这个问题的思路(假设删除一个元素):

      创建一个新的数组,长度为原来数组减1;

      循环复制,匹配的不复制,不匹配的复制到新数组;

    代码如下:


    public class $ 

        public static void main(String[] args) 
            int[] arr =  1, 2, 3, 4, 5 ;

            System.out.print("删除前:");
            show(arr);

            // ///////////////////////////////////
            int[] brr = new int[arr.length - 1];
            int idx = 0;
            for (int i : arr) 

                if (i != 3) 
                    brr[idx++] = i;
                
            
            // ///////////////////////////////////

            System.out.print("删除后:");
            show(brr);

        

        private static void show(int[] arr) 
            for (int i : arr) 
                System.out.print(i + ",");
            
            System.out.println();
        

参考技术B free是什么鬼来的,直接用遍历删除就可以啦

java删除数组中元素 举个例子: int a[]=1,2,3,4,5 我能得到下标 删除 a[3]也就是4如何实现。求赐教

如果非要使用数组,只能这样:首先确定你的数组中的元素的最大值和最小值(就是数组的范围,如:只能是大于等于0的),然后将目标元素a[3]的值改为比0小的(就是在这个数组范围以外的数字),然后排序 sort(),这样数组中的那个范围以外的元素就跑到最后的位置,然后再新建一个比原来数组小1位的数组,然后赋值,这样,当新数组赋值完毕时,老数组的最后一位就被剩下了,这样新数组就相当于那个删了元素的老数组
强烈建议使用 集合或泛型,因为里面有删除方法,而且不用定义长度,相当好使!
参考技术A import java.util.ArrayList;
import java.util.List;

public class Test
public static void main(String args[])
int[] oldArr = 1, 2, 3, 4, 5, 6 ;
int[] newArr = removeByIndex(oldArr, 3);
for (int i : newArr)
System.out.print(i);



public static int[] removeByIndex(int[] oldArr, int index)
// new 一个 List
List<Object> list = new ArrayList<Object>();
// 循环迭代,把数组放进List里面
for (int i : oldArr)
list.add(i);

// 根据索引删除
list.remove(index);
// 重新new 一个数组
int[] newArr = new int[list.size()];
// 把List里面的集合全部添加到数组里面
for (int i = 0; i < list.size(); i++)
newArr[i] = ((Integer) list.get(i)).intValue();

return newArr;

参考技术B 楼上砍甘蔗有道理,只要把第一节和第二节连接起来既可
public class Du

public static void main(String[] args)

int a[]=1,2,3,4,5,6;

int index = 2;//要删除的index

int[] ary = new int[a.length-1];

System.arraycopy(a, 0, ary, 0, index);
System.arraycopy(a, index+1, ary, index, ary.length-index);

for(int i = 0;i < ary.length; i++)
System.out.println(ary[i]);





-----------------
1
2
4
5
6
参考技术C 数组不可以俄
他就像一根甘蔗,有10节,你要是砍掉一节他就成了2跟甘蔗了

用arrayList存放你的数据吧,它可以实现你的功能
他们就像容器,你可以仍很多的石头进去,也可以拿出来
数组出生到死就固定长度的
参考技术D java.util.ArrayList.* 中有一个remove方法,可以采取这种动态数组的方法。

以上是关于java中 如何在一个数组中删除里面的元素的主要内容,如果未能解决你的问题,请参考以下文章

java ArrayList数组中如何插入一个元素

java数组如何循环添加元素

在JAVA中如何从数组中删除一个元素

如何删除MongoDB一个document中数组的一项

java如何删除掉数组中的某个元素??

java如何删除掉数组中的某个元素??