2つの配列を逆にして、両方の値が同じで参照が異なるようにする必要があります。
これが私のこれまでのコードです。
しかし、両方の配列が同じプログラム引数を指しているときにそれを達成するにはどうすればよいですか?
そして、なぜString []参照は、プログラム引数を逆にするのではなく、String []値を逆にするのですか?
例えば。プログラム引数が12 3 4 5 String []値= 5 4 3 2 1 String []参照= 1 2 3 45の場合
String[] values = changeValues(args);
System.out.println(Arrays.toString(values ));
String[] reference = changeReference(args);
System.out.println(Arrays.toString(reference));
if(!testSameValues(values, reference)) {
System.out.println("Error: Values do not match !");
}
if(testSameReference(values, reference)) {
System.out.println("Error: References are the same !");
}
}
public static String[] changeValues(String[] x) {
for(int i = 0; i < x.length/2; i++) {
String temp = x[i];
x[i] = x[(x.length-1)-i];
x[(x.length-1)-i] = temp;
}
return x;
}
public static String[] changeReference(String[] y) {
for(int i = 0; i < y.length/2; i++) {
String temp = y[i];
y[i] = y[(y.length-1)-i];
y[(y.length-1)-i] = temp;
}
return y;
}
public static boolean testSameValues(String[]x, String[] y) {
if(x.equals(y)) {
return true;
}
else
return false;
}
public static boolean testSameReference(String[] x, String[] y) {
if(x == y) {
return true;
}
else
return false;
}
changeReferenceメソッドとchangeValuesメソッドは同じことを行います-配列を逆にします。そのため、最終的に同じ入力配列が表示されます。
参照を変更するには、新しい配列を作成し、元の配列と同じ要素を配列に入力する必要があります。
編集:配列を新しい配列にコピーする
public static String[] changeReference(String[] y) {
String[] copy = new String[y.length];
for(int i = 0; i < y.length; i++) {
copy[i] = y[i]
}
return copy;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加