【问题标题】:How to sort an array without destroying the original array?如何在不破坏原始数组的情况下对数组进行排序?
【发布时间】:2013-04-13 02:19:54
【问题描述】:

我有原始数组

public static void main (String[] arg) {
  int[] array = {1,5,6,8,4,2}

  for (int i = 0; i < array.length; i++) {
    System.out.print("List 1 = " + array[i] + ",");
  }
  swap(array);
  for (int i = 0; i < array.length; i++) {
    System.out.print("List 2 = "+array[i] + ",");
  }
}
private static int swap (int[] list){
   Arrays.sort(list);
}

输出是

 List 1 = 1,5,6,8,4,2
 List 2 = 1,2,4,5,6,8

我想要的答案是

List 1 = 1,5,6,8,4,2
List 2 = 1,5,6,8,4,2

即使在排序之后。我该怎么做?

【问题讨论】:

  • 但是如果排序后显示相同则根本没有排序...

标签: java arrays sorting


【解决方案1】:
int[] originalArray = {1,5,6,8,4,2};
int[] backup = Arrays.copyOf(originalArray,originalArray.length);
Arrays.sort(backup);

执行上述代码后,backup 已排序,originalArray 保持不变。

【讨论】:

  • 如果是这样,我如何将该排序后的数组传递给另一个方法?
  • @userpane 你在开玩笑吗?你可以调用类似 yourMethod(backup);
  • 不不...我知道,但它在非主要方法中,所以我无法将它传递给另一个非主要方法。
  • 您可以退货。例如:public int[] yourMethod() { //some other code return backup; }
猜你喜欢
  • 2012-03-24
  • 2019-10-03
  • 1970-01-01
  • 2020-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-24
  • 1970-01-01
相关资源
最近更新 更多