HashMap

HashMap是对key进行散列。

Map跟Collection没有任何关系,所以没有add()方法。放置元素是通过V put(K key,V value)方法,获取元素通过V get(Object key)

 

 

代码
import java.util.*;

public class HashMapTest {
public static void main(String[] args) {
// 实例化HashMap
Map hm = new HashMap();

// 放入元素
hm.put("one", "zhangsan");
hm.put(
"two", "lisi");
hm.put(
"three", "wangwu");

// 通过键获得值,再打印元素
System.out.println(hm.get("one"));// 打印对应键one的值。
System.out.println(hm.get("two"));
System.out.println(hm.get(
"three"));
}
}

输出:

 

zhangsan

lisi

wangwu

keySet()、values()、entrySet()

1.    可以直接通过keySet()来返回一个在Map中键的一个视图。返回类型是Set。
2.    通过values()返回一个在Map中值的一个视图。返回类型是Collection。
3.    可以通过entrySet()返回一个在Map中键-值的一个视图。返回类型是Set。但是entrySet()所返回的Set当中每一个元素都是Map.Entry的类型。Entry是Map当中定义的一个静态的接口,为了显示它与Map的亲切关系,它们都是一起出现。

 

代码
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
* 迭代器只与Collections有关,与Map接口无关。
*
*
@author liujun
*
*/
public class HashMapTest {

public static void main(String[] args) {
Map
<String, String> hm = new HashMap<String, String>();
hm.put(
"one", "x");
hm.put(
"two", "y");
hm.put(
"three", "z");

// 通过键获得值
System.out.println(hm.get("one"));

// 获得键集
// Set<Object> java.util.HashMap.keySet()
Set<String> keys = hm.keySet();

// 获得值集
// Collection<Object> java.util.HashMap.values()
Collection<String> values = hm.values();

// 获得键-值集
// Set<Entry<Object, Object>> java.util.HashMap.entrySet()
// entrySet所返回的Set中,每一个元素都是一个Map.Entry的类型,Entry是Map当中定义的一个静态的接口。
// 主要是一个键值对,Map.Entry接口当中,提供了一个获取键和值的方法,getKey()和getValue()。
Set<Map.Entry<String, String>> entry = hm.entrySet();

// 使用迭代器打印键
System.out.println("keys:");
printElements(keys);
System.out.println();

// 使用迭代器打印值
System.out.println("values:");
printElements(values);
System.out.println();

// 直接打印entry键-值
System.out.println("keys-values:");


// 有的时候可能需要获取entry里面的键或者值进行处理。
// 下面的代码主要是演示如何获取键和值
Iterator<?> it = entry.iterator();
while (it.hasNext()) {
Map.Entry
<?, ?> me = (Map.Entry<?, ?>) it.next();
// Entry<?, ?> me = (Entry<?, ?>) it.next();
System.out.println(me.getKey() + ":" + me.getValue());
}
}

private static void printElements(Collection c) {
Iterator it
= c.iterator();
while(it.hasNext()) {
System.out.print(it.next()
+ ", ");
}
}
}

 

运行结果:
x
keys:
two, one, three,
values:
y, x, z,
keys
-values:
two:y
one:x
three:z

 

posted @ 2010-12-23 11:58  meng72ndsc  阅读(450)  评论(0编辑  收藏  举报