package util;

import java.util.HashMap;
import java.util.IdentityHashMap;

/**
 * 当クラスは「汎用の Map 実装ではありません」(API)
 * キー判定を同一オブジェクトの場合(==が成立するとき)のみ
 * equalsが成立するようになっている
 * 下記の例で確認のこと.
 * 使用するのは、かなり特殊な場合だが、必要な場合もあるだろう.
 */
public class IdentityHashMap00 {
  public static void main(String[] args) {
    //
    // 同じ文字列でもオブジェクトが違えば == は成立しない
    String s0 = new String("key");
    String s1 = new String("key");
    print(s0 == s1);
    //
    IdentityHashMap<String,String> map0 = new IdentityHashMap<String,String>();
    map0.put(s0,"value");
    // こちら値が取得できる
    print(map0.get(s0));
    // 今度は値は取得できない
    print(map0.get(s1));
    //
    // HashMapではどちらのキーでも取得できる
    HashMap<String,String> map1 = new HashMap<String,String>();
    map1.put(s0, "value");
    print(map1.get(s0));
    print(map1.get(s1));
  }
  private static void print(boolean b) {
    print(""+b);
  }
  private static void print(String s) {
    System.out.println(s);
  }
}


==
・目次 Java Stringとjava.util
  http://blogs.yahoo.co.jp/artery2020/39979089.html
・目次 - Java言語プログラミング入門
  http://blogs.yahoo.co.jp/artery2020/39975776.html
・目次 - ビジネスパーソンの常識と非常識
  http://blogs.yahoo.co.jp/artery2020/39728331.html
・目次 - 論理・発想・思考についての考察と鍛え方
  http://blogs.yahoo.co.jp/artery2020/39657784.html

== ended.