上一篇JAVA学习【7】初步讨论了JAVA集合框架与Arraylist、Linkedlist、HashSet的基本用法,这一篇主要对集合框架中的映射(map)与HashMap的基本用法进行介绍。
映射(map)存储键-值对,键值唯一,给定键值,则可查找相应的值。
映射(map)不实现Iterable接口,无法使用for-each遍历元素。
接口:
映射中最主要的接口是Map接口,它定义了以下主要方法:
put(key, value):存储键值对,自动替换原键值=key的键值对
get(key): 返回键值=key的键值对
Set<Map.Entry<K, V>> entrySet():返回所有键值对,主要采用该方法遍历映射中的键值对。
remove(key): 删除键值=key的键值对
clear(): 删除所有键值对
类:
HashMap类实现了Map接口,以哈希表形式存储键值对,无序。
TreeMap类以二叉树形式存储键值对,有序。
示例:
HashMap类:
import java.util.*;
public class MyCode5 {
public static void main(String args[]) {
HashMap<Integer,String> myhm = new HashMap<Integer,String>();
myhm.put(100,"Jack");
myhm.put(101,"Jack");
myhm.put(103,"Lily");
myhm.put(102,"Lucy");
System.out.println(myhm);
myhm.put(100,"Tom ");//自动替代原value
System.out.println(myhm);
Set<Map.Entry<Integer, String>> set = myhm.entrySet();
for(Map.Entry<Integer, String> me:set){
System.out.print(me.getKey()+": ");
System.out.println(me.getValue());
}
}
}
运行结果:
{100=Jack, 101=Jack, 102=Lucy, 103=Lily}
{100=Tom , 101=Jack, 102=Lucy, 103=Lily}
100: Tom
101: Jack
102: Lucy
103: Lily
TreeMap类与上相似,只需修改语句:“TreeMap<Integer,String> myhm = new TreeMap<Integer,String>();”
结果相同。
TreeMap与TreeSet相似,也是默认以升序方式排列。