为了账号安全,请及时绑定邮箱和手机立即绑定

Java使用Arrays.sort()排序整型数组后,整型数组内容为0?

Java使用Arrays.sort()排序整型数组后,整型数组内容为0?

www说 2019-02-20 18:00:32
注释掉的部分使用Arrays.sort()排序都正常,但是arr2排序完后都成0 了,在Arrays.sort()前面输出arr2也是正常的,排序完输出后为什么会成0?代码: import java.util.Arrays; import java.util.Scanner; public class pat_1064 { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] arr1 = new int[n]; int[] arr2 = new int[n]; for(int i = 0; i < arr1.length;i++){ arr1[i] = in.nextInt(); int temp = arr1[i]; arr1[i] = mod(temp); //至此全部转换成各位数和 System.out.print(arr1[i] + " "); } //这里不造怎么处理 /* * 从第一个开始找,第一次遇到一样的时候,标志置为false, * 然后从这个数再往下找,遇到一样的数组不再增加,而是都置为-1 * */ System.out.println(); int count = 0; for(int i = 0; i < n; i++){ for(int j = i + 1; j < n - 1; j++){ if(arr1[i] == arr1[j] && arr1[i] != -1 && arr1[j] != -1){ arr2[count] = arr1[i]; // System.out.println(arr2[count]); count++; arr1[j] = -1; for(int x = j + 1; x < n-1; x++){ if(arr1[i] == arr1[x]) arr1[x] = -1; } break; } } } System.out.println(arr2[0]); System.out.println(arr2[1]); System.out.println(arr2[2]); Arrays.sort(arr2); // int[] arr3 = new int[]{2,4,1,7,3,5}; // Arrays.sort(arr3); // for(int i = 0; i < 6; i++) System.out.print(arr3[i] + " "); for(int i = 0; i < count; i++) System.out.print(arr2[i] + " "); } public static int mod(int n){ int yu = 0; while(n != 0){ yu = yu + n % 10; n = n / 10; } return yu; } } 测试数据: 8 123 899 51 998 27 33 36 12 第一次遇见这种情况
查看完整描述

2 回答

?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

arr2 的大小是8,而count是3。当然会打印0,因为Arrays.sort()执行之后变成arr2:{0,0,0,0,0,6,9,26}

查看完整回答
反对 回复 2019-03-01
?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

可以用System.out.println(Arrays.toString(arr2));查看数组内容

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 1638 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号