タグ

hashcodeとhashCodeに関するchess-newsのブックマーク (5)

  • yachinco.net

    yachinco.net Buy this domain. 2020 Copyright. All Rights Reserved. The Sponsored Listings displayed above are served automatically by a third party. Neither the service provider nor the domain owner maintain any relationship with the advertisers. In case of trademark issues please contact the domain owner directly (contact information can be found in whois). Privacy Policy

  • ハッシュコードの衝突の増加: 柴田 芳樹 (Yoshiki Shibata)

    Effective Java 第2版 (The Java Series) 作者: Joshua Bloch出版社/メーカー: ピアソンエデュケーション発売日: 2008/11/27メディア: 単行(ソフトカバー) 項目9「equalsをオーバーライドする時は、常にhashCodeをオーバーライドする」では、ハッシュコードの計算方法がp.47に示されています。そして、計算の最初のステップとして、次のようにのべられています。 何らかのゼロではない定数、たとえば、17を、resultという名のint変数に保存します。 この17を使用することに関して、p.48には次のように述べられています。ゼロでない初期値がステップ1で使用されていますので、ステップ2aで計算された結果ゼロとなるハッシュ値を持つ最初のフィールドから、ハッシュ値は影響を受けます。もし、ステップ1で初期値としてゼロが使用されたら、全

    ハッシュコードの衝突の増加: 柴田 芳樹 (Yoshiki Shibata)
  • java.lang.Object#hashCode()の性質 - 地平線に行く

    この前、ふと Object クラスの JavaDoc を見ていたら、こんな記述がありました。 できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。 Oracle Technology Network for Java Developers | Oracle Technology Network | Oracle この「できるかぎり」って、どのぐらいなんでしょうか。 オブジェクト数に比例して、衝突していました。 さくっとコードを書いてみました*1。 結果は以下のグラフの通りです。 (一定数(横軸)のオブジェクトを生成し、ハッシュコードの衝突割合(縦軸)を調べました) オブジェクトが増えれば増えるほど、衝突確率が高まっていきます。 オブジェクトが100万個だと衝突確率は 1.46% でしたが、5,000万個だと 47

    java.lang.Object#hashCode()の性質 - 地平線に行く
  • オブジェクトのハッシュコードについて - たぬきになりたい人間のDevNotes

    超初歩的な事かもですが…。 Javaで配列オブジェクトをSystem.out.println()等で表示した時の結果についてメモです。 サンプルコード public class Sample { public static void main(String[] args) { String[] str = new String[10]; System.out.println("string[]:" + str); } } 実行結果 string[]:[Ljava.lang.String;@3e25a5 クラス名とハッシュコードが表示されます。 C言語のノリで、なんとなくアドレスだと思っていました。。。 Javaはアドレスを意識しないで良いのが利点なのに、アドレスが表示されるわけがないですよね。 と言ってもアドレスと無関係ではないみたいですが。。。 ☆ハッシュコードとは Objectクラスで

    オブジェクトのハッシュコードについて - たぬきになりたい人間のDevNotes
    chess-news
    chess-news 2018/08/03
     内部動作
  • [Java] hashCode のメモ - Qiita

    目的 Javaで hashCode 関連のメソッドはいくつかのクラスに分散しているので、整理してみます。 各メソッドの詳細な説明はしません。 hashCode の基 ハッシュ値を求める。ハッシュテーブル探索などで使われる(HashMap や HashSet など) equals() とセットで、矛盾なく実装する必要がある equals() が true を返すオブジェクトは、同じハッシュ値であること 違うハッシュ値である場合には、equals() は false を返すこと(対偶) equals() が false を返すオブジェクトが、同じハッシュ値であっても構わない(ハッシュ値の衝突)が、衝突が少ないほうが性能が良い メソッド java.lang.Object#hashCode() インスタンスのハッシュ値を計算する。 独自のクラスを HashMap などのキーに使いたいときには自分

    [Java] hashCode のメモ - Qiita
  • 1