free as in air

2007|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|09|11|12|
2012|03|04|05|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|03|04|06|09|
トップ «前の日(11-12) 最新 次の日(11-14)» /追記

2007-11-13 この日を編集

§ [diary] ワイヤーリール破損

 出勤中にワイヤー切れた。鼻緒が切れた的な不吉な予感。

§ [rjb] Autoboxing

 rjbタグ新設。jdk1.6.0+rjb_trunkで以下のコードが実行できる。どう考えても呼出前にIntegerとかに変換してるからなのだが、ずっとこんな感じだっけ?

  def test_autoboxing
    assert_equal(false, Rjb::primitive_conversion)
    test = import('jp.co.infoseek.hp.arton.rjb.Test')
    tr = import('java.util.TreeMap')
    tree = tr.new
    tree.put(1, 128)
    tree.put(2, 256)
    test.setSortedMapS(tree)
    assert_equal 128, tree.get(1).intValue
    assert_equal 256, tree.get(2).intValue
  end

Hashのキー,値にFixnumがそのまま使える点に注目。

あんまり関係ないけどさ、以下は覚えておくべき。

Integer.hashCode():この Integer オブジェクトが表すプリミティブ型 int 値に等しい。
Integer.equals():結果が true になるのは、引数が null ではなく、このオブジェクトと同じ int 値を含む Integer オブジェクトである場合だけです。
Collections Framework インタフェース内の多数のメソッドは、equals メソッドとの関連で定義されます。たとえば、containsKey(Object key) メソッドの仕様は、「このマップコレクションに (key==null ?k==null : key.equals(k)) を満たすキー k が含まれる場合にのみ、true を返す」というものです。."この仕様は、「null 以外の引数 key を使用して Map.containsKey を呼び出すと、キー k で key.equals(k) が呼び出される」と理解すべきではありません。実装は、最初に 2 つのキーのハッシュコードを比較するなど、equals 呼び出しを回避するための最適化を自由に実装できます。(Object.hashCode() 仕様では、等価ではないハッシュコードを保持する 2 つのオブジェクトは等価ではないことが保証されます)。通常、さまざまな Collections Framework インタフェースの実装で、実装者が適切と判断するなら、基盤となる Object メソッドの指定された動作を自由に利用できます。