2016-05-28 4 views
2

getTheLastElement()の代わりにgetTheLastElement2()を使用する利点(利点がある場合)はありますか?結果を返すほうが簡単な場合は、参照番号objを作成する必要があるのはなぜですか?Javaのリストから要素を返す

+0

どちらもこれらの作品の。 –

+1

'size'だけでなく' size-1'番目の要素を返す必要があります。 – Kajal

+0

また、http://stackoverflow.com/questions/36707/should-a-function-have-only-one-return-statementをご覧になりたい場合もあります。これは、単一の出口点を持つことの長所と短所を論じています。関数内の複数の出口点。あなたのコード例では、 'getTheLastElement()'は読みやすく、 'else'文がなくてもそうであることを示唆しています。 – mhawke

答えて

2

これらの2つの実装には違いはありません:objの参照はおそらく最適化されています。

getTheLastElement2という文の中でブレークポイントを設定して、常にヒットすることがあるので、コードをデバッグするときに少しの利点があります。これは戻り値を調べるために2つのブレークポイントが必要なgetTheLastElementとは対照的です。最初の例ではelseが冗長であることを

注:あなたは、さらに、単一の三元表現にこれを縮小することができ

public Object getTheLastElement(){ 
    if (list.isEmpty()) { 
     return null; 
    } 
    return list.get(list.size()-1); 
} 

public Object getTheLastElement(){ 
    return !list.isEmpty() ? list.get(list.size()-1) : null; 
} 
+0

それ以外は実行時間に影響しますか? – webpersistence

+0

@rExいいえ、それは冗長であり、コンパイラによって削除される予定です。実行速度の面ではこれらはすべて等しい。 – dasblinkenlight

1

いいえ、利点はありません。また、返す必要がありますlist.get(list.size()-1)

関連する問題