public class ApiClass{
//The below method prints only the user entered values
public void printArray(int[] a){
for(int element : a){
//ignore because this is the default value when array is created not user entered
if(element != 0)
{
System.out.print(element+"\t");
}
}
}
}
public class Client{
public static void main(String... args){
ApiClass api = new ApiClass();
int[] input = new int[5];
input[0]= 3;
input[2]= 2;
input[3] = 1;
api.printArray(input);
}
}
这工作正常,但对于用户输入零的 3,2,0 或 0,0,0 或 3,0,1 则失败
最佳答案
原始 int 类型的默认值为 0,因此数组中未初始化的元素将保存 0 值,
现在,如果您检查 element 是否不为 0,则打印,如果您输入 3,2,0
那么它将跳过 0
最好使用列表
List<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(0);
numbers.add(3);
现在迭代数字
for(Integer num: numbers){
//print num, no need to check for `0` any more
}
关于java - 如何解决这个Java数组默认初始化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8921301/