java - 我的 Array.sorts 没有按预期打印
问题描述
我的 Arrays.sort 被忽略了。正在打印数组而不进行排序。我尝试添加不同的参数并将其放置在不同的位置,但没有任何运气。我的程序假设在从文件中读取整数之后对数组进行排序。
package filterSort;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.Scanner;
import java.util.*;
public class FilterSort {
public static int[] doubleArrayAndCopy(int[] arr) {
int len = arr.length;
int max = arr.length * 2;
int[] copyArr = Arrays.copyOf(arr,max);
int length = copyArr.length-1;
Arrays.sort(copyArr, 0, length);
return copyArr;
}
public static void main(String[] args) {
int[] data = new int[8];
try {
File file = new File("data.txt");
Scanner myReader = new Scanner(file);
for(int i = 0; myReader.hasNext(); i++) {
if(i == data.length - 1) {
data = doubleArrayAndCopy(data);
}else {
if(myReader.hasNextInt()) {
data[i] = myReader.nextInt();
System.out.println(data[i]);
}else {
myReader.next();
}
}
}
} catch (FileNotFoundException e) {
System.out.println("File not found");
}
}
}
这是我的输出:
4
44
99
1
2
9
3
4
90
162
92
0
1
22
4
2
3
99
-8
100
99
-3
98
我需要以这种格式对其进行排序。
如果我将 System.out.println 和 Arrays.sort 放在最后:
} catch (FileNotFoundException e) {
System.out.println("File not found");
}
Arrays.sort(data, 0, data.length - 1);
for(int j = 0; j < data.length; j++) {
System.out.println(data[j]);
}
它对其进行排序,但它会从空索引中输出所有额外的 0。
解决方案
我看到你想在每 8 个项目之后打印你的排序数组,如果我这是正确的,请尝试copyArr
在函数中打印,然后返回一个空的。并在 for 循环之后添加此代码
if(data[0]!=null){
data = doubleArrayAndCopy(data);}
希望这会有所帮助
推荐阅读
- java - 从用户那里获取输入并打印数字的递减模式
- java - 如何将计时器指标添加到 java.util.Stream
- c++ - 用于集成 Visual Studio 单元测试的 CMake 文件
- android - 如何继续搜索匹配的玩家,然后停止在 Firebase 数据库中的搜索
- reactjs - 在使用弹出的反应应用程序的docker容器中获取多个node_modules?
- scala - Spark SQL:在具有成对列(AB)和(BA)的行中选择最大值
- javascript - 流式输出结果文本到语音
- c++ - C++ 地图迭代器
- r - 如何在 R 中绘制时间序列 EVI
- matlab - Matlab乘以一个负数显示我0