Java 无法解释copyOfRange(int[]a,int-from,int-to)函数的行为
我试着用数组静态函数copyOfRegion做一些切片拷贝。我的代码如下:Java 无法解释copyOfRange(int[]a,int-from,int-to)函数的行为,java,arrays,copy,Java,Arrays,Copy,我试着用数组静态函数copyOfRegion做一些切片拷贝。我的代码如下: public class MyJavaArrays { static int[] findEquilibPoint(int[] A) { int[] resArray = {-1}; /* * Our equilibrium condition is that the index must be between 0 and length *
public class MyJavaArrays {
static int[] findEquilibPoint(int[] A) {
int[] resArray = {-1};
/*
* Our equilibrium condition is that the index must be between 0 and length
* of the input array
*
*/
int l = A.length;
int sum_l = 0;
int sum_r = 0;
int j = 0;
for(int i=1; i<l-1; i++) {
sum_l=0;
sum_r=0;
int[] b1 = Arrays.copyOfRange(A,0,i-1);
int[] b2 = Arrays.copyOfRange(A,i+1,l-1);
System.out.println("START HERE..............\n");
for (int s: b1)
System.out.print(s + ", ");
System.out.println("\n............");
for (int s: b2)
System.out.print(s + ", ");
System.out.println("\n............");
for (int x: b1){sum_l += x;}
for (int y: b2){sum_r += y;}
System.out.println(sum_l+" ?= "+sum_r);
/* if the sums are equal, we have an equilibrium point */
if (sum_l == sum_r) {
resArray[j] = i;
j++;
}
}
return resArray;
}
public static void main(String[] args) {
int[] A = {-1, 3, -4, 5, 1,-6, 2, 1};
findEquilibPoint(A);
}
START HERE..............
............
-4, 5, 1, -6, 2,
............
0 ?= -2
START HERE..............
-1,
............
5, 1, -6, 2,
............
-1 ?= 2
START HERE..............
-1, 3,
............
1, -6, 2,
............
2 ?= -3
START HERE..............
-1, 3, -4,
............
-6, 2,
............
-2 ?= -4
START HERE..............
-1, 3, -4, 5,
............
2,
............
3 ?= 2
START HERE..............
-1, 3, -4, 5, 1,
............
............
4 ?= 0
我可以清楚地看到,在这里第一次开始之后。。。。。。。。。。。。声明,什么都没有!我有点困惑,但这是已知的错误吗?我还去检查我对copyOfRange的理解是否有误。但这家伙似乎在做我想做的事
任何人有任何想法/建议吗?这就是要复制的范围的最终索引,独占。如果要使用A、0、i和A、i、l-1,在java中,大多数与数组相关的索引都定义了半开放范围。开始索引通常是包含的,结束索引通常是独占的,这使得length=end-start,这很方便。@njzk2但是我仍然没有得到任何正确的结果!这样做的目的是找到数组在等分中的点,即前后的ELM之和是相同的。数组中没有这样的点,除非你打算排除元素A[i],在这种情况下,A,i+1,l而不是A,i,l。