题干
提示:这段是题干,仔细阅读仔细分析:
合并数组操作:现有如下一个数组:
intoldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
要求将以上数组中值为0的项去掉,
将不为0的值存入一个新的数组,生成的新数组为: intnewArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
思路:确定出不为0的个数,这样可以开辟新数组;从旧的数组之中,取出内容,并将其赋给新开辟的数组。
一、题目分析
1.定义要修改的数组
2.找原数组中0的个数
3.定义新数组,判断出新数组长度
4.遍历新数组,把原数组中不为0的元素赋给新数组
二、代码
1.代码块
代码如下(示例):
public class Work4 {
/*程序主入口*/
public static void main(String[] args) {
/*定义原来数组*/
int[] oldarr = {1, 3, 4, 5, 0, 0, 6, 6, 0, 5, 4, 7, 6, 7, 0, 5};
/*定义count存放原数组中0的个数*/
int count = 0;
/*遍历原数组,查看0的个数*/
for (int i = 0; i < oldarr.length; i++) {
if (oldarr[i] == 0) { //判断元素是否为0,如果为0则count加一
count++;
}
} //循环结束后得到原数组中0的个数
/*打印原数组,方便后续对照验证,也可以不写这行*/
System.out.println(Arrays.toString(oldarr));
/*定义新数组,新数组的长度为原数组的长度减去0的个数*/
int[] newarr=new int[oldarr.length-count];
/*定义新数组索引,作用:存放一个元素后自增1,为存放下一个元素做准备*/
int index=0;
/*遍历原数组*/
for (int i = 0; i < oldarr.length; i++) {
if (oldarr[i]!=0){ //找到不为0的元素
newarr[index]=oldarr[i]; //如果不为0,把这个元素赋值给新数组
index++; //赋值后索引加一,为存放下一个元素做准备
}
}
/*打印新数组*/
System.out.println(Arrays.toString(newarr));
}
}
2.一图流
总结
这是一道数组练习题,本文是我的个人理解,希望对你也能有所帮助!