Java 以不同的方法操作数组
在我的课本中,至少对我来说,没有什么奇怪的,也就是说,我有一个类,这个类有一个方法,它接受整数(或任何东西)上的数组,然后用任何算法对它排序。奇怪的是,他只是调用该方法并传递数组,而该方法不会返回任何无效的内容Java 以不同的方法操作数组,java,arrays,Java,Arrays,在我的课本中,至少对我来说,没有什么奇怪的,也就是说,我有一个类,这个类有一个方法,它接受整数(或任何东西)上的数组,然后用任何算法对它排序。奇怪的是,他只是调用该方法并传递数组,而该方法不会返回任何无效的内容 ..... sort(anArray) ..... ..... ..... public void sort(int[] array) ..... 这将立即更新要排序的数组。我想的是,该方法将返回另一个数组,该数组是相同的数组,但按顺序排列 ..... arrayx = sort(an
.....
sort(anArray)
.....
.....
.....
public void sort(int[] array)
.....
这将立即更新要排序的数组。我想的是,该方法将返回另一个数组,该数组是相同的数组,但按顺序排列
.....
arrayx = sort(anArray)
.....
.....
.....
public int[] sort(int[] array)
.....
你能给我解释一下区别吗。例1
在本例中,正在修改传入的数组。一无所获
之所以能够做到这一点,是因为Java将数组作为函数的参数来处理
您应该看看这个问题,它解释了数组参数是如何工作的:
例2
在本例中,在函数内创建一个新数组,然后返回
由于未修改原始数组,您需要将函数调用的结果存储在一个变量中以获得排序数组。1)在这种情况下,您的函数返回void
(无),这意味着此函数具有副作用
public void sort(int[] array)
2) 您的函数返回int[]
,它可能是纯函数
(取决于函数代码)
关于副作用
和纯功能
:
arrayx = sort(anArray);
...
public int[] sort(int[] array) { ... }
public void sort(int[] array)
public int[] sort(int[] array)