【问题标题】:How can I delete an elment with it's index from one dimensional array in java? [duplicate]java - 如何从Java中的一维数组中删除具有索引的元素? [复制]
【发布时间】:2019-02-26 19:40:43
【问题描述】:

我有一个大小为 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] ;



}

【问题讨论】:

  • 顺便说一句,TODO 似乎毫无意义。可能要删除它

标签: java arrays element


【解决方案1】:

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


这是演示 sn-p

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]

【讨论】:

    【解决方案2】:

    减少数组长度是不可能的。 你必须使用另一个数据结构

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 2019-07-10
      • 2010-10-13
      • 2014-03-05
      • 2022-01-13
      • 2019-10-20
      相关资源
      最近更新 更多