【问题标题】:Storing a sorted array in Java, not understanding .clone() Java在 Java 中存储排序数组,不理解 .clone() Java
【发布时间】:2020-12-16 21:49:31
【问题描述】:

我正在尝试存储一个与原始数组分开的排序数组。我需要能够访问两个数组而不改变原始数组。我试图了解如何 .clone 但我似乎无法理解我做错了什么。我在下面有我的代码,我将一个数组从上面传递到这个方法中,并想要对其进行排序和存储。我在这里甚至接近正确吗?

public static double sortArray(int[] array) {
        //Sort the array
        Object tempObj = array.clone();
        Arrays.sort(tempObj);
        sortedArray[] = tempObj;

【问题讨论】:

  • 你想在哪里存储这个数组?
  • 您是否要克隆确切的值?
  • int[] sortedArray = array.clone(); Arrays.sort(sortedArray);
  • 你声明返回类型double
  • stackoverflow.com/questions/14149733/…这个答案解释了clone()方法的使用

标签: java arrays sorting clone


【解决方案1】:

您可以使用 java 8 流对新的排序数组执行此操作:

int[] newArr = Arrays.stream(array).sorted().toArray(int[]::new);

然后将您的方法返回类型更改为 int[]:

public static int[] sortArray(int[] array) 
{
    int[] newArr = Arrays.stream(array).sorted().toArray(int[]::new); 
    return newArr; 
}

【讨论】:

  • 您可以立即使用return 而无需创建int[] newArr 参考:)
  • 是的,但他说他想跟踪两个阵列,所以我只是为了清楚起见
猜你喜欢
  • 2016-08-06
  • 1970-01-01
  • 2011-07-23
  • 1970-01-01
  • 2014-01-04
  • 2011-02-28
  • 2019-08-11
  • 2021-02-07
相关资源
最近更新 更多