0
Javaのオブジェクト配列の最大値と最小値を交換するように指示されています。私は自分のコードを書いて、合理的だと思われますが、何らかの理由で値が切り替わっていませんか?私は自分のコードに何が間違っているのかはっきりしていない、誰かが正しい方向に私を向けることができますか?ありがとうございました!!Javaのオブジェクト配列の最小値と最大値の切り替え
これは私のコードです:
public class Measurables
{
/**
Swaps the values with the smallest and largest measure.
@param objects an array of objects of a class that implements the
Measurable interface.
*/
public static void swapMinAndMax(Measurable[] objects)
{
Measurable largest = objects[0];
Measurable smallest = largest;
for (int i = 1 ; i < objects.length ; i++)
{
Measurable current = objects[i];
if (largest.getMeasure() < current.getMeasure())
{
largest = current;
}
if (smallest.getMeasure() < current.getMeasure())
{
smallest = current;
}
Measurable temp = largest;
largest = smallest;
smallest = temp;
}
}
}
これは私がテスターの実行時に取得されるものです:
Testers
Running Tester.java
fail
[Uruguay, Thailand, Belgium]
Expected: [Uruguay, Belgium, Thailand]
Running Tester2.java
fail
[BankAccount[balance=1000.0], BankAccount[balance=3000.0], BankAccount[balance=2000.0]]
Expected: [BankAccount[balance=3000.0], BankAccount[balance=1000.0], BankAccount[balance=2000.0]]
Running Tester3.java
pass
[Uruguay]
Expected: [Uruguay]
スワップされた配列は保存しません。 すべての値をテストしていますが、配列を返すことはありません。 – sheplu
shepluのコメントを展開する必要はありません。配列を返す必要はありません。しかし、項目を変更することはなく、あなたのローカル変数だけを指しています。私。最後に 'objects [largest_index] =最小;オブジェクト[smallest_index] =最大; '。 (これらのインデックスも追跡する必要があります) – user2478398
[sort]メソッドを使うことができると思います(http://docs.oracle.com/javase/8/docs/api/ java/util/Arrays.html#sort-T:A-java.util.Comparator-)。値が他の値より大きいときを示すラムダ式と配列を渡すだけです –