packagecom.java.collection;importjava.util.HashMap;importjava.util.Iterator;public classHashMapTest {public static voidmain(String[] args){
HashMap hm=new HashMap();
hm.put(new People("隋宇航",20),"公主岭");
hm.put(new People("陶磊",20),"磐石");
hm.put(new People("闫卿阁",20),"双阳");
hm.put(new People("隋宇航",20),"四平");
Iterator it=hm.keySet().iterator();while(it.hasNext()){
People p=it.next();
System.out.println(p.getName()+" "+p.getId()+" "+hm.get(p));
}
}
}/*Map:一次存储一对元素。collection 一次添加一个元素。
map也称为双列集合,collection集合称为单列集合。
map集合中必须保证键的唯一性。
常用方法:
添加:
value put(key,value),返回前一个和key关联的值,如果没有返回null。
删除:
void clear();清空map集合。
value remove(key),根据指定的key删除这个键值对。
判断:
boolean containsKey(key);
boolean containsValue(value);
boolean isEmpty();
获取:
value get(key);通过键获取值,如果没有该键返回null。
当然可以通过返回null,来判断是否包含指定键。
int size(); 获取键值的个数。
keyset():取出map中的所有元素。
原理:通过keyset方法获取map中所有的键所在的set集合,在通过set的迭代器获取到每一个键,在对每一个键获取其对应的值即可。
entryset():通过map转成set就可以迭代了。
找到了另一个方法。entryset().
该方法将键和值的映射关系作为对象存储到了set集合中,而这个映射关系的类型就是map.Entry类型。
map常用的子类:
|--Hashtable:内部结构是哈希表,是同步的。不允许null为键值。
|--Properties:用来存取键值对型的配置文件的信息。可以和io技术相结合。
|--HashMap:内部结构是哈希表,不是同步的。允许null为键值。
|--TreeMap:内部结构是二叉树,不是同步的。可以对map集合中的键进行排序。
LinkedHashMap:有序,存入和取出的顺序一样。*/