标签: hashcode

如何使用两个键(Key-Pair,Value)创建HashMap?

我有一个整数的2D数组.我希望将它们放入HashMap中.但我想基于Array Index访问HashMap中的元素.就像是:

对于A [2] [5],map.get(2,5)它返回与该键相关联的值.但是如何使用一对键创建hashMap?或者一般来说,多个键:Map<((key1, key2,..,keyN), Value)我可以使用get(key1,key2,... keyN)访问元素.

编辑:发布问题3年后,我想补充一点

我遇到了另一种方式NxN matrix.

数组索引,ij可被表示为一个单一的key方式如下:

int key = i * N + j;
//map.put(key, a[i][j]); // queue.add(key); 
Run Code Online (Sandbox Code Playgroud)

并且可以通过key以下方式从这些指数中恢复指数:

int i = key / N;
int j = key % N;
Run Code Online (Sandbox Code Playgroud)

java hash hashmap hashcode

114
推荐指数
7
解决办法
14万
查看次数

.NET唯一对象标识符

有没有办法获取实例的唯一标识符?

GetHashCode()对于指向同一实例的两个引用是相同的.但是,两个不同的实例可以(很容易)获得相同的哈希码:

Hashtable hashCodesSeen = new Hashtable();
LinkedList<object> l = new LinkedList<object>();
int n = 0;
while (true)
{
    object o = new object();
    // Remember objects so that they don't get collected.
    // This does not make any difference though :(
    l.AddFirst(o);
    int hashCode = o.GetHashCode();
    n++;
    if (hashCodesSeen.ContainsKey(hashCode))
    {
        // Same hashCode seen twice for DIFFERENT objects (n is as low as 5322).
        Console.WriteLine("Hashcode seen twice: " + n + " (" + hashCode + ")");
        break; …
Run Code Online (Sandbox Code Playgroud)

c# unique hashcode gethashcode

113
推荐指数
7
解决办法
11万
查看次数

默认的.equals和.hashCode如何适用于我的课程?

说我有自己的课

public class MyObj { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

它有一些属性和方法.它不实现equals,不实现hashCode.

一旦我们调用equals和hashCode,默认实现是什么?来自Object类?他们是什么?默认等于如何工作?默认的hashCode如何工作以及返回什么?==只会检查它们是否引用同一个对象,所以这很容易,但是equals()和hashCode()方法呢?

java equality equals object hashcode

103
推荐指数
3
解决办法
6万
查看次数

当toString()和hashCode()被覆盖时,如何获取java中对象的"对象引用"?

我想在Java中打印对象的"对象引用"以进行调试.即根据情况确保对象是相同的(或不同的).

问题是有问题的类继承自另一个类,它覆盖了toString()和hashCode(),它们通常会给我id.

示例情况:运行多线程应用程序,其中我(在开发期间)想要检查所有线程是否使用相同的资源对象实例.

java object hashcode

100
推荐指数
4
解决办法
11万
查看次数

使用JPA和Hibernate时应该如何实现equals和hashcode

应该如何在Hibernate中实现模型类的equals和hashcode?常见的陷阱是什么?对于大多数情况,默认实现是否足够好?使用商业密钥有什么意义吗?

在我看来,当考虑到懒惰的提取,id生成,代理等时,很难在任何情况下都能正常工作.

java orm hibernate equals hashcode

93
推荐指数
5
解决办法
5万
查看次数

为什么String的hashCode()没有缓存0?

我注意到在Java 6的String源代码中,hashCode只缓存0以外的值.下面的代码片段展示了性能上的差异:

public class Main{
   static void test(String s) {
      long start = System.currentTimeMillis();
      for (int i = 0; i < 10000000; i++) {
         s.hashCode();
      }
      System.out.format("Took %d ms.%n", System.currentTimeMillis() - start);
   }
   public static void main(String[] args) {
      String z = "Allocator redistricts; strict allocator redistricts strictly.";
      test(z);
      test(z.toUpperCase());
   }
}
Run Code Online (Sandbox Code Playgroud)

在ideone.com中运行此命令将提供以下输出:

Took 1470 ms.
Took 58 ms.
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:

  • 为什么String的hashCode()没有缓存0?
  • Java字符串哈希值为0的概率是多少?
  • 对于散列为0的字符串,每次重新计算哈希值的性能损失的最佳方法是什么?
  • 这是缓存值的最佳实践方式吗?(即缓存除一个以外的所有?)

为了您的娱乐,这里的每一行都是一个散列为0的字符串:

pollinating sandboxes
amusement & hemophilias
schoolworks = perversive
electrolysissweeteners.net
constitutionalunstableness.net
grinnerslaphappier.org
BLEACHINGFEMININELY.NET
WWW.BUMRACEGOERS.ORG
WWW.RACCOONPRUDENTIALS.NET …
Run Code Online (Sandbox Code Playgroud)

java string hashcode

75
推荐指数
6
解决办法
1万
查看次数

JVM如何确保System.identityHashCode()永远不会改变?

通常,默认实现Object.hashCode()是内存中对象的已分配地址的某个函数(尽管这不是JLS强制要求的).鉴于VM在内存中分流对象,为什么System.identityHashCode()在对象的生命周期内返回的值永远不会改变?

如果它是"一次性"计算(对象的hashCode计算一次并隐藏在对象标题或其他东西中),那么这是否意味着两个对象可能具有相同的identityHashCode(如果它们碰巧首先在内存中的相同地址)?

java jvm heap-memory hashcode

68
推荐指数
2
解决办法
1万
查看次数

在HashMap中使用String键的坏主意?

我知道String类的hashCode()方法不能保证为不同的String-s生成唯一的哈希码.我看到很多使用将String键放入HashMap-s(使用默认的String hashCode()方法).如果地图put替换了之前使用真正不同的String键放入地图的HashMap条目,则大量此类使用可能会导致严重的应用程序问题.

您将遇到String.hashCode()为不同的String-s返回相同值的场景的几率是多少?当密钥是String时,开发人员如何解决此问题?

java string map hashcode

67
推荐指数
3
解决办法
7万
查看次数

在C#中使用SHA1算法进行哈希处理

我希望byte[]使用使用SHA1Algorithm的哈希给定数组SHA1Managed.
byte[]散列将来自单元测试.
预期的散列是0d71ee4472658cd5874c5578410a9d8611fc9aef(区分大小写).

我怎样才能做到这一点?

public string Hash(byte [] temp)
{
    using (SHA1Managed sha1 = new SHA1Managed())
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

c# hash byte sha1 hashcode

66
推荐指数
5
解决办法
12万
查看次数

如果没有覆盖hashCode(),那么对象的哈希码是什么?

如果没有覆盖hashCode()方法,那么在Java中的任何对象上调用hashCode()的结果是什么?

java object hashcode

63
推荐指数
3
解决办法
2万
查看次数

标签 统计

hashcode ×10

java ×8

object ×3

c# ×2

equals ×2

hash ×2

string ×2

byte ×1

equality ×1

gethashcode ×1

hashmap ×1

heap-memory ×1

hibernate ×1

jvm ×1

map ×1

orm ×1

sha1 ×1

unique ×1