Java 简明教程

Java IdentityHashMap Class

Introduction

Java IdentityHashMap 类使用哈希表实现 Map 接口,在比较键(和值)时使用引用相等性来代替对象相等性。以下是有关 IdentityHashMap 的重要几点:

  1. 此类提供所有可选的映射操作,并允许多个空值和空键。

  2. 此类不保证映射的顺序;特别地,它不保证顺序随时间保持不变。

  3. 在 IdentityHashMap 中,当且仅当 (k1==k2) 时,两个键 k1 和 k2 才被视为相等,而在 Map 实现(如 HashMap)中,当且仅当 (k1==null ? k2==null : k1.equals(k2)) 时,两个键 k1 和 k2 才被视为相等。

Class declaration

以下是 java.util.IdentityHashMap 类的声明:

public class IdentityHashMap<K,V>
   extends AbstractMap<K,V>
   implements Map<K,V>, Serializable, Cloneable

Class constructors

Class methods

Methods inherited

此类从以下类中继承方法:

  1. java.util.AbstractMap

  2. java.util.Object

Adding a Key-Value Mapping in an IdentityHashMap Example

以下示例展示了 Java IdentityHashMap put() 方法的用法,以将几个值放入映射中。我们创建了一个 Integer,Integer 的映射对象。然后使用 put() 方法添加了一些条目,然后打印映射。

package com.tutorialspoint;

import java.util.IdentityHashMap;

public class IdentityHashMapDemo {
   public static void main(String args[]) {

      // create identity map
      IdentityHashMap<Integer,Integer> newmap = new IdentityHashMap<>();

      // populate identity map
      newmap.put(1, 1);
      newmap.put(2, 2);
      newmap.put(3, 3);

      System.out.println("Map elements: " + newmap);
   }
}

让我们编译并运行以上的程序,这会生成以下结果:

Map elements: {2=2, 3=3, 1=1}