Java 无法解释copyOfRange(int[]a,int-from,int-to)函数的行为

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 *

我试着用数组静态函数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
         * 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。