1

これは非効率的または醜い、または何らかの理由で、もっとエレガントにしたい

if (a > b) {
    recurseWith(a);
    recurseWith(b);
else {
    recurseWith(b);
    recurseWith(a);
}

私のコードでは、a と b はより長く、新しい関数へのパラメーターはよりかさばり、見栄えが悪くなります。これをきれいにする方法はありますか?

これらはグローバル変数で機能するため、順序は重要です。まあ、このコードは機能します。

Javaで解決策を探しています

-オースティン

4

2 に答える 2

0

次のロジックはここでは役に立ちませんか?

if(a<=b) swap(a,b);

recurseWith(a);
recurseWith(b);
于 2012-11-28T04:01:46.670 に答える
-2

良い答えはありませんが、パラメーターの粗さ/長さによっては、Runnableでそれらを非表示にすることができるため、一度だけ書き込む必要があります。これが「よりクリーン」であるかどうかはあなたが決定します。aとを使用しているため、ここではさらに悪化しますb

Runnable aRunnable = new Runnable() {
    public void run() {
        recurseWith(a);
    }
}

Runnable bRunnable = new Runnable() {
    public void run() {
        recurseWith(b);
    }
}

if (a > b) {
    aRunnable.run();
    bRunnable.run();
else {
    bRunnable.run();
    aRunnable.run();
}
于 2012-11-28T04:03:06.037 に答える