public class Test {
public static void main(String[] args) {
int[] oldArr = {1,3,4,5,6,6,0,5,6,7,0,5};
int[] copyNoZero = copyNoZero(oldArr);
//调用Arrays工具类的方法,将数组转为字符串格式
String str = Arrays.toString(copyNoZero);
System.out.println(str);
}
/**
/**
* 现有如下的数组
int[] oldArr = {1,3,4,5,6,6,0,5,6,7,0,5};
取出以上数组不为0的值,然后将不为0的值存入一个新的数组,生成新的数组为:
int[] newArr = {1,3,4,5,6,6,5,6,7,5};
*/
public static int[] copyNoZero(int[] oldArr){
if (oldArr == null) {
return null;
}
/*
* 思路:
* 1. 确定新数组的长度,怎么确定?
* 遍历oldArr,数出所有不为零的元素个数
* 2. 将老数组中所有不为零的元素复制到新数组
* 遍历oldArr,将元素赋值到新数组
*/
// 1. 确定新数组的长度,定义一个变量保存不为零的元素个数
int count = 0;
for (int i : oldArr) {
//判断数组中元素不为零的个数
if (i != 0) {
count++;
}
}
//创建新数组
int[] newArr = new int[count];
//2.定义一个变量保存新数组下标
int index = 0;
//3. 将老数组中所有不为零的元素复制到新数组
for (int i = 0; i < oldArr.length; i++) {
if (oldArr[i] != 0) {
//将不为零的元素赋值给新数组,新数组的下标每次赋值完后,都会自增1
newArr[index++] = oldArr[i];
}
}
return newArr;
}
}
给定一个数组,取出数组中不为0的值,然后将不为0的值存入一个新的数组,生成新的数组
最新推荐文章于 2024-01-05 08:29:25 发布