目录
前言
最近看到一个简单的练习题,题目要求将给定数组中值为0的项去掉。下面给出关于题目的两种代码写法。
一、练习题目要求
现有一个数组,int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5},要求将数组中值为0的项去掉,然后重新打印出来。
二、练习题目答题
1.第一种较复杂的写法
首先找出数组为0的值有几个,然后以此定义新数组,将老数组不为0的值存入新的数组。代码如下:
public class Array {
public static void main(String[] args) {
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int num = Num(oldArr);
int newArr[]=ArrZero(num,oldArr);
for (int i : newArr) {
System.out.print(i+" ");
}
}
public static int Num(int[] arr){
int num = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=0){
num++;
}
}
return num;
}
public static int[] ArrZero(int num,int[] arr){
int a = 0;
int[] arrzero = new int[num];
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=0){
arrzero[a]=arr[i];
a++;
}
}
return arrzero;
}
}
2.第二种较简便的写法
使用stream,代码如下:
public class Array {
public static void main(String[] args) {
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=Arrays.stream(oldArr).filter(e ->(e!=0)).toArray();
Arrays.stream(newArr).forEach(e -> System.out.print(e+" "));
}
}
总结
以上就是文章叙述的内容,本文围绕去除数组中值为0项练习题进行解题,并给出两种Java代码写法。