德甲

java.util 第1部分:类集框架 (14)

2019-09-13 19:35:10来源:励志吧0次阅读

HashMap 类

HashMap类使用散列表实现Map接口。这允许一些基本操作如get( )和put( )的运行时间保持恒定,即便对大型集合,也是这样的。下面的构造函数定义为:

HashMap( )

HashMap(Map m)

HashMap(int capacity)

HashMap(int capacity, float fillRatio)

第一种形式构造一个默认的散列映射。第二种形式用m的元素初始化散列映射。第三种形式将散列映射的容量初始化为capacity。第四种形式用它的参数同时初始化散列映射的容量和填充比。容量和填充比的含义与前面介绍的HashSet中的容量和填充比相同。HashMap实现Map并扩展AbstractMap。它本身并没有增加任何新的方法。应该注意的是散列映射并不保证它的元素的顺序。因此,元素加入散列映射的顺序并不一定是它们被迭代函数读出的顺序。

下面的程序举例说明了HashMap。它将名字映射到账目资产平衡表。注意集合“视图”是如何获得和被使用的。

import java.util.*;

class HashMapDemo {

public static void main(String args[]) {

// Create a hash map

HashMap hm = new HashMap();

// Put elements to the map

hm.put("John Doe", new Double(3434.34));

hm.put("Tom Smith", new Double(123.22));

hm.put("Jane Baker", new Double(1378.00));

hm.put("Todd Hall", new Double(99.22));

hm.put("Ralph Smith", 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 John Doe's account

double balance = ((Double)hm.get("John Doe")).doubleValue();

hm.put("John Doe", new Double(balance + 1000));

System.out.println("John Doe's new balance: " +

hm.get("John Doe"));

}

}

该程序的输出如下所示:

Todd Hall: 99.22

Ralph Smith: -19.08

John Doe: 3434.34

Jane Baker: 1378.0

Tom Smith: 123.22

John Doe’s current balance: 4434.34

程序开始创建一个散列映射,然后将名字的映射增加到平衡表中。接下来,映射的内容通过使用由调用函数entrySet( )而获得的集合“视图”而显示出来。关键字和值通过调用由Map.Entry定义的getKey( )和getValue( )方法而显示。注意存款是如何被制成John Doe的账目的。put( )方法自动用新值替换与指定关键字相关联的原先的值。因此,在John Doe的账目被更新后,散列映射将仍然仅仅保留一个“John Doe”账目。

HashMap 类HashMap类使用散列表实现Map接口。这允许一些基本操作如get( )和put( )的运行时间保持恒定,即便对大型集合,也是这样的。下面的构造函数定义为:HashMap( )HashMap(Map m)HashMap(int capacity)HashMap(int capacity, float fillRatio)第一种形式构造一个默认的散列映射。第二种形式用m的元素初始化散列映射。第三种形式将散列映射的容量初始化为capacity。第四种形式用它的参数同时初始化散列映射的容量和填充比。容量和填充比的含义与前面介绍的HashSet中的容量和填充比相同。HashMap实现Map并扩展AbstractMap。它本身并没有增加任何新的方法。应该注意的是散列映射并不保证它的元素的顺序。因此,元素加入散列映射的顺序并不一定是它们被迭代函数读出的顺序。下面的程序举例说明了HashMap。它将名字映射到账目资产平衡表。注意集合“视图”是如何获得和被使用的。import java.util.*;class HashMapDemo {public static void main(String args[]) {// Create a hash mapHashMap hm = new HashMap();// Put elements to the maphm.put("John Doe", new Double(3434.34));hm.put("Tom Smith", new Double(123.22));hm.put("Jane Baker", new Double(1378.00));hm.put("Todd Hall", new Double(99.22));hm.put("Ralph Smith", new Double(-19.08));// Get a set of the entriesSet set = hm.entrySet();// Get an iteratorIterator i = set.iterator();// Display elementswhile(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 John Doe's accountdouble balance = ((Double)hm.get("John Doe")).doubleValue();hm.put("John Doe", new Double(balance + 1000));System.out.println("John Doe's new balance: " +hm.get("John Doe"));}}该程序的输出如下所示:Todd Hall: 99.22Ralph Smith: -19.08John Doe: 3434.34Jane Baker: 1378.0Tom Smith: 123.22John Doe’s current balance: 4434.34程序开始创建一个散列映射,然后将名字的映射增加到平衡表中。接下来,映射的内容通过使用由调用函数entrySet( )而获得的集合“视图”而显示出来。关键字和值通过调用由Map.Entry定义的getKey( )和getValue( )方法而显示。注意存款是如何被制成John Doe的账目的。put( )方法自动用新值替换与指定关键字相关联的原先的值。因此,在John Doe的账目被更新后,散列映射将仍然仅仅保留一个“John Doe”账目。 查看本文来源

小孩风寒感冒
孩子口舌生疮
小孩脸黄怎么办
儿童中暑的症状
分享到: