1
回答
一个刚接触的小白提了一个想不懂的问题
华为云实践训练营,热门技术免费实践!>>>   
public class prictace_1{
public static void print(int arr[])
{
for (int x=0;x<arr.length;x++)
System.out.print(arr[x]);
System.out.println(); }
public static int[] sort(int arr1[])
{
for (int x=0;x<arr1.length;x++)
{ if(arr1[x]==0)
continue;
System.out.print(arr1[x]);

}
return arr1;
}
    
public static void main(String []args)
{
int [] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
               print(oldArr);
               int [] newArr=sort(oldArr);
               

}
}

要求是将数组中为0的元素去掉,其他的不为0的元素组成一个新数组,所以我写了这个程序,但是朋友说这个程序没从根本上解决问题,只是利用sort方法进行了筛选,而newArr中的元素还是oldArr中的,这是为什么啊?

举报
南燕北灰
发帖于2年前 1回/155阅
共有1个答案 最后回答: 2年前

你这个sort函数,参数和返回值是一个对象,压根没做处理,只是挑了非0的元素打印出来而已

--- 共有 3 条评论 ---
南燕北灰回复 @焙焙龙 : 已经调用了sort方法处理参数,那应该不是将非0的元素返回给oldArr吗?为什么我的这个返回值还是和oldArr的一样,是sort内的语句实现不了那个功能吗? 2年前 回复
焙焙龙回复 @南燕北灰 : 用list存起来,最后在转成数组,或者创建一个跟源数组同样大小的数组,然后依次将非0值赋值进去,通过一个整数变量来统计数量,然后再用这个变量创建一个新的数组,再将数组里面的前N个数字复制进去,简单点可以用System.arrayCopy来实现 2年前 回复
南燕北灰应该怎么修改呀? 2年前 回复
顶部