Fei*_*anZ 0 java methods parameter-passing
是否将参数传递给定义的方法(在Java中)?例如,在代码段中
Arrays.equals(ascendingSegment, Arrays.sort(ascendingSegment))
用于检查数组是否实际上按升序排序,我保证在调用sort方法之前传入原始数组吗?
编辑:
似乎有一点误解.equals在第一个参数传递之前,方法是否在排序之前获取了ascendingSegment的副本,或者是第一个调用的排序?给定一个数组,如{1, 5, 2, 4}equals方法接收{1, 5, 2, 4}和{1, 2, 4, 5}作为参数或两个副本{1, 2, 4, 5}?
如果您使用调试器逐步执行它并逐步执行它,您将看到所有参数都被计算,然后调用该函数.
我还会说,尝试做你发布的内容是一种不好的做法.在测试对象时,您不应该对该对象执行任何会使其变异的操作.在该方法调用之后,您将无法在测试之前显示列表的顺序.
编辑:
Arrays.sort()不返回值,它就地排序.因此你不能像这样使用它.您应该使用Arrays.copyOf()制作数组的副本,对副本进行排序,然后比较两个数组.