同じような事でJavaのString型の比較の時に気をつけることについて。これらは少し違うものです。intやstring等の場合には基本的に結果は同じです。'Same!'...>>>の様に、isの方だと同値とみなしません。isの方は同じオブジェクト(同じID、メモリ上のアドレスに対応するもの)かどうかを比較してるからです。listの方では値が同じでもIDはそれぞれ違っています。基本的な型で小文字で始める型です。これらに関しては==で同値かどうか判断します。オブジェクトは全てequalsというメソッドを持っています。obj);}という風に定義されていて、==と同じです。falseを返します。==で判断すると違うオブジェクトであれば違うものと判断されます。文字列の内容が同じかどうか、を返す様にしてあります。System.out.plingln("s1.equals(s2)");}とするとs1.equals(s2)だけ表示されます。s2s1.equals(s2)と両方表示されます。s2でもtrueになります。equalsで比較するべきです。==で比較するとおかしくなることがあります。System.out.plingln("i1.equals(i2)");}とするとi1.equals(i2)なのでIntegerを比較する際にもequalsを使います。i2i1.equals(i2)となります。System.out.plingln("i1.equals(i2)");}比較するとi1.equals(i2)の様にequalsだけがtrueを返します。逆な感じになってるのでちょっと混乱の元です。いうかちょっと混乱したのでまとめておきました。Pythonで値を比較する時はisではなく==。JavaのStringやInteger等で値を比較する時は==ではなくequals。