如何在java中从一维数组中删除带索引的元素? [重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我有一个大小为5的数组,我想从同一个数组中删除一个元素,它也应该减小它的大小,我可以通过创建一个新数组来实现,但我试图在同一个数组上执行。有没有办法让它成功?

public static void main(String[] args) {
    // TODO Auto-generated method stub
int arraysize = 5;
int[] a = new int[arraysize] ;
    a[0]=1;
    a[1]=2;
    a[2]=3;
    a[3]=4;
    a[4]=5;

    for(int i=0 ; i < a.length ; i++)
    {
        if(a[i]==3)
        {
            a[i]=a[i+1];
            i = i + 1;  
        }
        System.out.println(a[i]);
    }
    a[arraysize] = a[arraysize-1] ;



}
java arrays element
2个回答
3
投票

在java中,你不能从数组中删除元素并减少它的大小。数组的大小是CONSTANT。请改用ArrayList。


这是演示片段

int arraysize = 5;
List<Integer> numbers = new ArrayList<>(arraysize);

for (int i = 1; i <= 5; i++)
    numbers.add(i);

System.out.println(numbers.size()); // 5
System.out.println(Arrays.asList(numbers.toArray()));   // [1, 2, 3, 4, 5]

numbers.remove(3);
System.out.println(numbers.size()); // 4
System.out.println(Arrays.asList(numbers.toArray()));   //  [1, 2, 3, 5]

0
投票

减少阵列长度是不可能的。您必须使用其他数据结构

© www.soinside.com 2019 - 2024. All rights reserved.