如何从Java中删除数组中的某些元素?

时间:2017-03-12 16:30:28

标签: java

如果我有一个数字数组,比如5,6,8,1,0,5,0,0,0,那么我的数组的长度是9,我想缩短数组以便所有从末尾删除等于0的元素,直到达到第一个非零元素,我该怎么做?简而言之,我希望我的新数组为5,6,8,1,0,5。

3 个答案:

答案 0 :(得分:0)

一种简单的方法是

答案 1 :(得分:0)

首先,您需要通过从反向循环来获取最后一个非零元素的索引。

int i=arr.length-1;
for(;i>=0;i--)
   if(arr[i]!=0)break;

现在,一旦你有索引,你可以从index=0开始循环到最后一个非零元素索引并将它添加到ArrayList。

@Aubin建议

使用arraycopy

答案 2 :(得分:0)

像这样:):

 int[] array = new int[] {5,2,1,2,0,5,0,5,7,0,8,0,0};
//find fisrt not null from end
   int index=findFirstNotNull(array);
   int[] newArr = Arrays.copyOf(array, index+1);

 public  int findFirstNotNull(int[] arr){
  int index=0; 
  for(int i=arr.length-1;i>=0;i--){
    if(arr[i]!=0){
      index= i;
      break;
    }
  }
  return index;
}