読者です 読者をやめる 読者になる 読者になる

Masa / Lino Blog

Masanori Satoh ( Masa / Lino ) の徒然ブログです

RubyとJava オブジェクト比較


Rubyの場合オブジェクトの値を比較する場合、
"=="を使う。他にもメソッドで"Object#eql?"も使用可能。
ただしNumericでは、振る舞いが異なる。


オブジェクトIDが同じかどうかを比較するとき、
"Object#equal?"を使う。

str1 = "hoge"
str2 = "hoge"
str3 = str1

p str1.equal?(str2) #=> false
p str1.equal?(str3) #=> true
p str1 == str2 #=> true
p str1 == str3 #=> true


Javaでは、Rubyと逆。
オブジェクトの値を比較する場合、
"Object#equals()"を使う。


オブジェクト事態が同じかどうか比較するときは
"=="を使う。

package lino;

public class equalsSample {
    public static void main(String argv[]) {
        String str1 = new String("hoge");
        String str2 = new String("hoge");
        String str3 = str1;
        
        System.out.println(str1.equals(str2)); // true
        System.out.println(str1.equals(str3)); // true
        System.out.println(str1 == str2); // false
    }

}


間違えてしまいそうだ。