一个刚接触的小白提了一个想不懂的问题

南燕北灰 发布于 2015/11/03 23:03
阅读 226
收藏 0

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

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中的,这是为什么啊?

加载中
0
焙焙龙
焙焙龙

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

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