IFを使用せずに2つの値を比較する方法を教えてください。私はそれが= ?
またはこのようなものを使用することが可能であることを知っています。例えば、2人のarraylists c
とt
のサイズを比較しましょう。このために、私はのようなコードを使用したい:Javaで '=?'を使用して2つの値を比較する
boolean answ = ? c.size() = t.size();
IFを使用せずに2つの値を比較する方法を教えてください。私はそれが= ?
またはこのようなものを使用することが可能であることを知っています。例えば、2人のarraylists c
とt
のサイズを比較しましょう。このために、私はのようなコードを使用したい:Javaで '=?'を使用して2つの値を比較する
boolean answ = ? c.size() = t.size();
boolean answ = c.size() == t.size();
三項演算子、?
を試してみてください、場合あなたは答え、それを必要としない2の1を取得するために使用されますあなたはを1つだけブールの答えが必要です。あなたは非プリミティブ値を比較されていない限り、あなたは通常、(そして、あなたが適切にクラスでそれをオーバーライドする場合equals
メソッドを使用する必要があると思います)==
なく=
を使用する値を比較する
。
単一の=
が感情に使用され、同等性をテストするためではありません。
'String'への参照は、ここで誤解を招きます。実際には、*すべて*非プリミティブな値に対して' equals() 'を使用したいと思います。 'String'は決して特別なものではありません。 – alf
これは動作するはずです:
boolean answ = c.size() == t.size();
あなたは覚えているかもしれない何else構文場合は短いです:
return c.size() == t.size() ? true : false;
後者はコンパイルされません。 – alf
ああ、戻り値は最初に...ありがとう! – WarrenFaith
あなたが使用する必要がある場合は?次のように記述する必要があります。
boolean answ = (c.size() == t.size() ? true : false);
をが、これははるかに長い
boolean answ = (c.size() == t.size() );
を書くよりもあなたは三項演算子を意味するのですか?
result = expr1 ? expr2 : expr3;
expr1
がtrueと評価された場合、その後result
はexpr2
の結果、expr3
のそれ以外の結果が割り当てられます。だから、:
boolean answ = c.size() == t.size() ? true : false;
それは、三元または条件演算子と呼ばれている:
このコードはif
を使用せずに比較します:
boolean answ s= (c.size()==t.size()) ? true : false;
ちょっと書いてあり、オーバーヘッドもあるのであれば使っています。三項演算子を使わないと、三項演算子を使うのはなぜですか? – WarrenFaith
あなたは 'if'を避けたいと思う理由は?あなたが本当に達成しようとしていることについて、いくつかの光を当てるかもしれません...それは割り当ての目的のためだけですか? [実際には三項演算子を使用する正当な理由です...] – amit
そしてどのくらい正確に比較しますか? – fge
boolean answ =(c.size()== t.size()); – dkulkarni