java中的数组未赋值时,默认元素都为零,这样老是会出问题,怎么解决啊?比如我下面这个程序。

2024-12-27 05:21:06
推荐回答(2个)
回答1:

你问这问题,证明你对数组的静态初始化和动态初始化还不够了解。
数组的静态初始化
int[] a={1,2,3,4};

动态初始化
int[] intArray;//声明数组
intArray = new int[5];//为数组分配空间

所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序运行是才动态分配内存空间。对于代码而言,其实都可以。唯一不一样的地方, 就是动态的初始值都是0,静态的是直接给定值了。

所以对于动态初始化的数组,里面元素默认都是0

回答2:

for (; j <= i && list[i] != result[j]; j++);
   /*
    * 如果再插入的那个不等于前面所有的数,那么这个j是比前 数的个数多加了一,        * 这时候就可以插入数据了,就让k等于这个时候的list[i],然后K还有自增。 但是有一个问题是,
    * 未赋初值时,数组的第一个值是零,如果数组中出现零,那么这样消除重复后零就都没有了。怎么解决?
    */
   if (j > i || (j == i && list[i] == 0)){
    result[k++] = list[i];
   }
  • 其中:|| (j == i && list[i] == 0) 应该能解决你的问题!!