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

importjava.util.Scanner;publicclassch06{publicstaticvoidmain(String[]shu){int[]list1=... import java.util.Scanner;
public class ch06 {
public static void main(String[] shu) {
int[] list1 = new int[10];
Scanner input = new Scanner(System.in);
System.out.println("Enter ten numbers:");
for (int i = 0; i < list1.length; i++)
list1[i] = input.nextInt();
eliminateDuplicates(list1);
}
public static void eliminateDuplicates(int[] list) {
int[] result = new int[list.length];
int k = 0;
for (int i = 0; i < list.length; i++) {
int j = 0;
for (; j <= i && list[i] != result[j]; j++);/*如果再插入的那个不等于前面所有的数,那么这个j是比前
数的个数多加了一,这时候就可以插入数据了,就让k等于这个时候的list[i],然后K还有自增。但是有一个问题是,
未赋初值时,数组的第一个值是零,如果数组中出现零,那么这样消除重复后零就都没有了。怎么解决?*/
if (j > i)
result[k++] = list[i];
}
for(int i=0;i<k;i++){
System.out.print(result[i]+" ");
}
}
}
展开
 我来答
dai4067767
推荐于2017-09-26 · TA获得超过331个赞
知道小有建树答主
回答量:174
采纳率:100%
帮助的人:91.1万
展开全部
你问这问题,证明你对数组的静态初始化和动态初始化还不够了解。
数组的静态初始化
int[] a={1,2,3,4};

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

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

所以对于动态初始化的数组,里面元素默认都是0
追问
不好意思,我问的问题其实是这样的。就是要设计一个方法,消除数组中的重复元素,但是用以上代码方法会在消除重复时,数组中的零都没有了。我想让0出现在数组中,要怎么实现?
追答
你可以加个标志判断是否有0,下面那个方法可以这样改:
public static void eliminateDuplicates(int[] list) {
int[] result = new int[list.length];
int k = 0;
boolean flag =true;
for (int i = 0; i i)
result[k++] = list[i];
}
for (int i = 0; i < k; i++) {
System.out.print(result[i] + " ");
}
}
雪风松123
2015-11-12 · TA获得超过298个赞
知道小有建树答主
回答量:155
采纳率:100%
帮助的人:125万
展开全部
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) 应该能解决你的问题!!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式