我正在学习 Arrays.sort(...)
在 Java 中的工作原理。
为什么变量:temp
和 dopas
都排在唯一的排序 temp
之后?
System.out.println("Before");
for (int i = 0; i < POP; i++)
System.out.println(dopas[i]+""); //dopas is unsorted
System.out.println("After");
float[] temp=dopas;
Arrays.sort(temp); //sort temp
for (int i = 0; i < POP; i++)
System.out.println(temp[i]+" "+dopas[i]); //Both temp and dopas are now sorted
我预计多巴蛋白会保持未分类状态。
最佳答案
数组是 Java 中的对象,因此当使用数组变量时,您实际上是在使用对数组的引用。
因此行
float[] temp=dopas;
只会将引用复制到数组dopas
。之后,dopas
和 temp
指向同一个数组,因此在使用 sort()
后两者都将显示为已排序。
使用 System.arrayCopy
或 Arrays.copyOf
创建数组的副本。
关于java - 如何使用 Java Arrays.sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231042/