Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误与异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 其他

Java APIs 和框架

Java 类引用

Java 有用资源

Java - HashMap 类



HashMap 类使用哈希表来实现 Map 接口。这使得即使对于大型集合,基本操作(例如 get() 和 put())的执行时间也能保持不变。

以下是 HashMap 类支持的构造函数列表。

序号 构造函数及描述
1

HashMap()

此构造函数构造一个默认的 HashMap。

2

HashMap(Map m)

此构造函数使用给定 Map 对象 m 的元素初始化哈希映射。

3

HashMap(int capacity)

此构造函数将哈希映射的容量初始化为给定的整数值 capacity。

4

HashMap(int capacity, float fillRatio)

此构造函数使用其参数初始化哈希映射的容量和填充率。

除了从其父类继承的方法外,HashMap 还定义了以下方法:

序号 方法及描述
1

void clear()

从此映射中删除所有映射。

2

Object clone()

返回此 HashMap 实例的浅表副本:键和值本身不会被克隆。

3

boolean containsKey(Object key)

如果此映射包含指定键的映射,则返回 true。

4

boolean containsValue(Object value)

如果此映射将一个或多个键映射到指定值,则返回 true。

5

Set entrySet()

返回此映射中包含的映射的集合视图。

6

Object get(Object key)

返回此标识哈希映射中指定键所映射到的值,如果映射不包含此键的映射,则返回 null。

7

boolean isEmpty()

如果此映射不包含键值映射,则返回 true。

8

Set keySet()

返回此映射中包含的键的集合视图。

9

Object put(Object key, Object value)

在此映射中将指定值与指定键关联。

10

putAll(Map m)

将指定映射中的所有映射复制到此映射。这些映射将替换此映射对指定映射中当前存在的任何键所拥有的任何映射。

11

Object remove(Object key)

如果存在,从此映射中删除此键的映射。

12

int size()

返回此映射中键值映射的数量。

13

Collection values()

返回此映射中包含的值的集合视图。

示例

以下程序演示了此集合支持的几种方法:

import java.util.*;
public class HashMapDemo {

   public static void main(String args[]) {
   
      // Create a hash map
      HashMap hm = new HashMap();
      
      // Put elements to the map
      hm.put("Zara", new Double(3434.34));
      hm.put("Mahnaz", new Double(123.22));
      hm.put("Ayan", new Double(1378.00));
      hm.put("Daisy", new Double(99.22));
      hm.put("Qadir", new Double(-19.08));
      
      // Get a set of the entries
      Set set = hm.entrySet();
      
      // Get an iterator
      Iterator i = set.iterator();
      
      // Display elements
      while(i.hasNext()) {
         Map.Entry me = (Map.Entry)i.next();
         System.out.print(me.getKey() + ": ");
         System.out.println(me.getValue());
      }
      System.out.println();
      
      // Deposit 1000 into Zara's account
      double balance = ((Double)hm.get("Zara")).doubleValue();
      hm.put("Zara", new Double(balance + 1000));
      System.out.println("Zara's new balance: " + hm.get("Zara"));
   }
}

这将产生以下结果:

输出

Daisy: 99.22
Ayan: 1378.0
Zara: 3434.34
Qadir: -19.08
Mahnaz: 123.22

Zara's new balance: 4434.34
java_collections.htm
广告