2012-01-02 22 views
1

IFを使用せずに2つの値を比較する方法を教えてください。私はそれが= ?またはこのようなものを使用することが可能であることを知っています。例えば、2人のarraylists ctのサイズを比較しましょう。このために、私はのようなコードを使用したい:Javaで '=?'を使用して2つの値を比較する

boolean answ = ? c.size() = t.size(); 
+0

あなたは 'if'を避けたいと思う理由は?あなたが本当に達成しようとしていることについて、いくつかの光を当てるかもしれません...それは割り当ての目的のためだけですか? [実際には三項演算子を使用する正当な理由です...] – amit

+0

そしてどのくらい正確に比較しますか? – fge

+2

boolean answ =(c.size()== t.size()); – dkulkarni

答えて

6

boolean answ = c.size() == t.size();

三項演算子、?を試してみてください、場合あなたは答え、それを必要としない2の1を取得するために使用されますあなたはを1つだけブールの答えが必要です。あなたは非プリミティブ値を比較されていない限り、あなたは通常、(そして、あなたが適切にクラスでそれをオーバーライドする場合equalsメソッドを使用する必要があると思います)==なく=を使用する値を比較する

0

単一の=が感情に使用され、同等性をテストするためではありません。

+1

'String'への参照は、ここで誤解を招きます。実際には、*すべて*非プリミティブな値に対して' equals() 'を使用したいと思います。 'String'は決して特別なものではありません。 – alf

2

これは動作するはずです:

boolean answ = c.size() == t.size(); 

あなたは覚えているかもしれない何else構文場合は短いです:

return c.size() == t.size() ? true : false; 
+0

後者はコンパイルされません。 – alf

+0

ああ、戻り値は最初に...ありがとう! – WarrenFaith

4

あなたが使用する必要がある場合は?次のように記述する必要があります。

boolean answ = (c.size() == t.size() ? true : false); 

をが、これははるかに長い

boolean answ = (c.size() == t.size() ); 
1

を書くよりもあなたは三項演算子を意味するのですか?

result = expr1 ? expr2 : expr3; 

expr1がtrueと評価された場合、その後resultexpr2の結果、expr3のそれ以外の結果が割り当てられます。だから、:

boolean answ = c.size() == t.size() ? true : false; 
2

このコードはifを使用せずに比較します:

boolean answ s= (c.size()==t.size()) ? true : false; 
+0

ちょっと書いてあり、オーバーヘッドもあるのであれば使っています。三項演算子を使わないと、三項演算子を使うのはなぜですか? – WarrenFaith

関連する問題