int[] i={1,2,3}
.equals int i1[]={1,2,3}
と異なるhashcode()
があります。詳細を調べると、ネイティブコードhashCode()
が配列ハッシュコードの実装方法を知りたいと考えています。Javaで配列hashcode()がどのように計算されるか。配列の場合のhashcode()の実装
答えて
が
System.out.println(i.hashCode()); // return 865113938
System.out.println(i1.hashCode()); // return 1442407170
Arrays.hashCode
方法は、指定された配列の内容に二つのコンテンツとして基づいてハッシュコードを返し、オブジェクトのポインタ値であるため、ハッシュコードによって返された整数は、両方の行列の異なります配列は同じ値
System.out.println(Arrays.hashCode(i)); // return 30817
System.out.println(Arrays.hashCode(i1));// return 30817
等しい復帰していて、二つの配列を比較したい場合はArrays.equals
を使用することができますデフォルトのハッシュコードは本質的に "オブジェクトポインタ値"ではありません。オブジェクトは動き回りますが、ハッシュコードは変更されません。いくつかの一般的なJVMでは、オブジェクトのアドレスの一部がハッシュを生成するために使用されます。これは "オブジェクトポインタ値"と同じではありません。ハッシュコードがオブジェクトへのポインタのレイヤの1つのビットパターンと一致する場合でも、ハッシュをポインタ値と考えることは有用ではありません。 –
私はこれを探していませんでした。配列が以下のコードを使用していることを知っています。ここでは、あなたのコードで配列hashcodeを使用しています。どのように通常の配列のハッシュコードがutlのものではなく計算されるのか理解したいと思います。public static int hashCode(int a []){ if(a == null) return 0; int result = 1; (int要素:a) 結果= 31 *結果+要素; 返品結果; } –
- 1. Java ArrayのHashCode実装
- 2. HashMap実装:--- hashcode
- 3. コレクションを含むJavaクラスのhashcode実装
- 4. JavaでhashCode()を実装する方法
- 5. Javaハッシュテーブル#hashCode()の実装が壊れていますか?
- 6. 良いhashCode()実装
- 7. Java文字列hashCode null string
- 8. どのようにAngularjsで配列値の合計の合計?
- 9. Javaマップの実装がHashCodeに基づいていない
- 10. JavaのDelayQueueを使用する場合、equals()およびhashCode()も実装する必要がありますか?
- 11. Swift 3でJava StringのhashCode()メソッドを実装する
- 12. 配列の合計を計算する
- 13. は、クラスオブジェクトの場合にのみhashcode()が必要ですか?
- 14. 列が配列の場合はどのようにするのですか?
- 15. 配列の配列にrxjs zip演算子を実装するにはどうすればいいですか?
- 16. オブジェクトの配列内のグループ化されたオブジェクトの配列内の計算された合計でJavaScript
- 17. Objectクラスはどのように実装されていますか(hashCodeや内部フィールドなどのメソッド)?
- 18. HashMapにはhash()という独自のhashCode()が実装されています。
- 19. Javascriptどのようにアイテムの配列の合計価格を計算することができますか?
- 20. Pyopencl配列配列を加算するための合計
- 21. 2D配列の列の合計を計算する
- 22. 計算された配列プロパティのメモリセマンティクス?
- 23. `hashCode`のデフォルトの実装は何ですか?
- 24. Mapreduce-java:配列リストの計算平均
- 25. Java - hashCodeとtoStringのオーバーライド
- 26. postgres配列オーバーラップ演算子(&&)空の配列の場合
- 27. 配列内の3つの数値が合計に加算されるかどうかを調べる
- 28. どのように配列内の数字を合計する
- 29. javaのhashCode()は決定的ですか?
- 30. equalsをオーバーライドする必要がない場合のHashCodeのオーバーライド
おそらく、[java.util.Arrays.equals](https://docs.oracle.com/javase/8/docs/api/java/util/Arrays.html#equals-int: A-int:A-) –
'hashCode'は、これら2つのオブジェクトが異なるメモリのチャンクに格納されているため、異なる値を返します。 [この回答を参照](/ a/13387787/2487517) – Tibrogargan