您的位置:首页 > 其它

数组 从数组中去掉元素为0的数组

2020-08-11 14:34 113 查看

数组 从数组中去掉元素为0的数组

需求:定义一个整型数组,将数组中的0去掉后返回一个新数组。

例如:数组为 int[] arr={1,13,45,5,0,0,16,6,0,25,4,17,6,7,0,15}; 要求将以上数组中为0的元素去掉,将不为0的值存入一个新数组,生成新的数组作为返回值: int[] newArr={1,13,45,5,16,6,25,4,17,6,7,15};

思路:
  • 遍历一次 把不为零的元算一遍 计算有多少个不为零的数
  • 定义一个新数组 长度为不为零的元素的个数
  • 再遍历一次 把不为零的元素 遍历赋值给新数组
  • 打印出新数组
用到的知识点:
  • 数组的遍历
  • 定义并动态初始化数组
  • 遍历赋值给新数组
代码如下:
package com.cen.Homework.day04;

import java.util.Arrays;

public class StatisticsDemo3 {
public static void main(String[] args) {

//定义sum来接收不为零的元素个数是多少
int sum = 0;
//int ele = 0;
int i;
//定义数组并初始化和赋值
int[] arr = {1, 13, 45, 5, 0, 0, 16, 6, 0, 25, 4, 17, 6, 7, 0, 15};
//遍历一次  有元素不为零的时候sum+1;直到遍历结束
for (i = 0; i < arr.length; i++) {
//	定义 lel来接收arr的所有元素
int lel = arr[i];
//判断
if (arr[i] == 0) {
continue;
} else {
sum++;
//                ele = arr[i];
}
}

int newArr [] = new int [sum];

int count = 0;
for (int j = 0; j < arr.length; j++) {
int a = arr[j];
if(a != 0){
newArr[count] = a;
count++;
}

}
System.out.println(Arrays.toString(newArr));
System.out.println(java.util.Arrays.newArr);
}

//方法二
/**   public static void main(String[] args) {
int[] arr=new int[]{1,13,45,5,0,0,16,6,0,25,4,17,6,7,0,15};
int length = 0; //新数组长度
int count = 0;//记录新数组当前位置
for (int i = 0; i < arr.length; i++) {  //统计数组中元素不为0的元素个数length
if (arr[i] != 0){
length++;
}
}
//将上面统计得到的length作为新数组的长度
int[] ints = new int[length];
//遍历原数组,将不为0的元素添加到新数组中
for(int a:arr){
if (a!=0){
ints[count] = a;
count++;
}
}
//        for(int i:ints){
//            System.out.print(i + " ");
//        }
System.out.println(Arrays.toString(ints));
}
**/
}

运行结果为:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: