誰かが私が次のことをどのように達成するか教えてもらえますか?Javaは私の強みではありません。検索を試みた後、Javaのページを常に参照で渡します。
void edit(int[] a){
a = new String[]{"q","r","s","t","u"};
}
int[] x = new int[]{"a","b","c"};
edit(x);
System.out.println(x); // ["q","r","s","t","u"]
関数に渡した後にxのポインターを変更できるように、上記を達成しようとしています。
Javaは純粋に値渡しです。メソッドの引数として使用される変数の値を変更するメソッド内では、何もできません。Javaでは不可能です。
あなたの例では、配列の内容を変更することができますが、配列が参照しているものを変更することはできません。あなたはこのようにするでしょう:x
void edit(int[] a) {
a[0] = 1;
a[1] = 2;
a[2] = 3;
}
ここでの違いに注意してください。配列が参照する内容を変更することはできx
ますがx
、内から変更することはできませんedit
。したがって、たとえば、配列の長さを変更することはできません。変更する唯一の方法は、新しい配列を作成x
してそれを指すことであり、内でそれを行うことはできないためですedit
。
その他のオプション:
edit
新しい配列を返し、それをに割り当てx
ます。List
、要素の数を変更できます。この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加