なぜこの方法の変更は、配列の値を渡しません

Ayazフサイン:

私は、ローカル変数に変更を加えると、それを返しています。私はそれがラインなし9で12を印刷するべきだと思います。

public class HackerEarth {

    int a[]= {3,4,5};
    int b[]=foo(a);

    void display() {
        System.out.println(a[0]+a[1]+a[2]+ " "); //line no 9
        System.out.println(b[0]+b[1]+b[2]+ " ");
    }

    public static void main(String[] args) {
        HackerEarth he=new HackerEarth();
        he.display();
    }
    private int[] foo(int[] a2) {
        int b[]=a2;
        b[1]=7;
        return b;
    }
}

任意の提案をいただければ幸いです。

アンドロニカス:

あなたには、それの値を上書きする最初の配列への参照を使用しているfoo方法。渡されたものの値に基づいて別のアレイを作成するには、使用することを検討してくださいArrays.copyOf

private int[] foo(int[] a2) {
    int b[] = Arrays.copyOf(a2, a2.length);
    b[1]=7;
    return b;
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=31512&siteId=1
おすすめ