现在有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,
生成新的数组为 int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
//新数组的长度
int count=0;
/**
* 遍历旧数组。
* 如果a不等于0,新数组长度++。
*/
for(int a:oldArr){
if(a!=0){
count++;
}
}
System.out.println("非0的长度是:"+count);
/**
* 初始化一个新数组,新数组的长度为count。
*/
int[] newArr=new int[count];
/**
* index 索引
* 定义一个索引,这个索引用来找内存中新数组的值
*/
int index=0;
/**
* for循环里,i要小于旧数组的长度
* 旧数组元素不等于0,就把旧数组元素复制给新数组的索引,索引++;
*/
for(int i=0;i<oldArr.length;i++){
if(oldArr[i]!=0){
newArr[index]=oldArr[i];
index++;
}
}
/**
* Arrays.toString():把数组当成字符串打印出来
* 把新数组打印出来。
*/
System.out.println(Arrays.toString(newArr));
}