java - 如何使用 Java Arrays.sort

标签 java arrays sorting

我正在学习 Arrays.sort(...) 在 Java 中的工作原理。

为什么变量:tempdopas 都排在唯一的排序 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。之后,dopastemp 指向同一个数组,因此在使用 sort() 后两者都将显示为已排序。

使用 System.arrayCopyArrays.copyOf 创建数组的副本。

关于java - 如何使用 Java Arrays.sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7231042/

相关文章:

javascript - 从数组元素中删除换行符 Javascript

java - ArrayList 的 ArrayList

sorting - Elasticsearch按不在过滤器中的字段值排序

sorting - 以编程方式设置网格排序

c - qsort 无法正确排序 C 中结构体的指针数组

java - 如何使用 Jpa 存储库实现轻型实体版本?

java - 如何将图像保存到android中的Camera文件夹?

java - GWT 客户端中哪个是好的 Java 或 Json?

java - 如何使用 Spring Data Cassandra 仅查询 1 个字段?

java - 数组 如何将一个数字添加到与其值相同的位置?