- PR -

文字列の比較

投稿者投稿内容
パルプ
ベテラン
会議室デビュー日: 2003/06/18
投稿数: 59
投稿日時: 2003-07-26 18:06
引用:

悪夢を統べるものさんの書き込み (2003-07-25 20:00) より:
>System.out.println( "test1 : " + sample.test1() );
>System.out.println( "test2 : " + sample.test2() );
>System.out.println( "test3 : " + sample.test3() );
順番は入れ換えてみましたか?
このままだと先にやるほうが不利になるのでは.




初期化にかかる時間を計っている(処理前と処理後の時間差を取っている)だけなので、
順番を換えても結果は変わらないと思いますが、いかがでしょうか?
(結果が若干変わっても、それはCPU側の計算処理による微妙な差だと思います!)
MUSE
常連さん
会議室デビュー日: 2003/04/06
投稿数: 42
投稿日時: 2003-07-27 18:30
元の質問は、
引用:

てんきゅうさんの書き込み (2003-05-01 14:38) より:

この2つではどちらかが良くどちらかが悪いと言うことが
あるのでしょうか?


ということですが、これは、

- 可読性 : ソースコード上の可読性から見た側面
- 実行効率 : 実行効率から見た側面

の2つの側面があると思います。

[ メッセージ編集済み 編集者: LED 編集日時 2003-07-28 01:05 ]
うのきち
ベテラン
会議室デビュー日: 2003/02/17
投稿数: 55
投稿日時: 2003-07-27 19:26
しまった。

引用:

LEDさんが言いたいのは、こういうケースだと思います。



LEDさんじゃなくってzaxx_MDさんでしたね。失礼しました。

やっぱり、==が参照変数の一致を調べるという今の言語仕様は失敗だったんじゃないですかね。どのプロジェクトのソースをgrepしてみても、文字列を==で比較するバグが発見できなかった試しは無いし(もっとも==で比較しても良いケースがあるから、これまたやっかいなんですが)。

しろうと考えですが、a==bは、(a!=null&&a.equals(b))にコンパイルして、今の==の役には、"isidentical"みたいな演算子を導入した方が良かったんじゃないかなぁ。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-07-27 21:35
>LEDさん
念のため確認ですが、==とequals()が同じ結果を返すなんて思ってないですよね?
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-07-28 09:34
引用:

悪夢を統べるものさんの書き込み (2003-07-25 20:00) より:
>System.out.println( "test1 : " + sample.test1() );
>System.out.println( "test2 : " + sample.test2() );
>System.out.println( "test3 : " + sample.test3() );
順番は入れ換えてみましたか?
このままだと先にやるほうが不利になるのでは.




こんにちわ。

順番も変えてやってみましたが、結果に差は出ませんでした。
NGUR
会議室デビュー日: 2003/04/22
投稿数: 5
投稿日時: 2003-07-28 18:01
どうしても == で比較したいのであれば
String#intern() を使用して

if (str.intern() == "") {}
if (str.intern() == "hoge") {}

とでもしてください。
未だに見たことありませんし、今後もないでしょうが。

スキルアップ/キャリアアップ(JOB@IT)