Map接口: -----HashMap: 主要的Map实现类(允许使用null-null为key-value);
-----LinkedHashMap: 链表维护
-----TreeMap: 按照添加进Map中的元素的key的指定属性进行排序
(同TreeSet,自然排序与定制排序,不过是针对key)
因此要求key的元素是同一个类的对象。
-----Hashtable(古老的实现类不常用,不允许使用null-null为key-value,但是子类Properties用得到)
-------子类Properties(常用来处理属性文件,key-vlaue均为String类型)
Map 常用方法:
Object put(Object key,Object value):向Map中添加一个元素
Object remove(Object key):按照指定的Key删除此key-value
void putAll(Map t)
Object get(Object key)
void clear(): 清空
int size()
boolean isEmpty()
boolean equals(Object obj)
boolean containsKey(Object key)
boolean containsValue(Object value)
HashMap: key是用Set来存放的,不可重复。Value是Collection存放的,可以重复
一个key-value对是一个Entry,多组Entry 也是一个Set.
向HashMap中添加元素时,会调用Key所在类的equals方法,判断两个key是否相同,如果
相同,后添加的元素会覆盖原来的元素
LinkedHashMap: 遍历顺序与添加顺序相同,因为增加了链表维护
如何遍历key如何遍历value
如何遍历key-value
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Collection;
import java.util.Iterator;
public class TestMap{
public static void main(String[] args){
Map map = new HashMap();
map.put(12,1234);
map.put("AA",90);
map.put("GG",10);
map.put("PP",78);
// 如何遍历key- for循环
Set set = map.keySet();for(Object o : set){
System.out.print(o);
}
// 如何遍历key-迭代器
Iterator i = set.iterator();while(i.hasNext()){
System.out.println(i.next());
}
// 如何遍历value-迭代器
Collection values = map.values();Iterator j = values.iterator();
while(j.hasNext()){
System.out.println(j.next());
}
// 如何遍历key-value for循环get
for(Object o : set){
System.out.print(o + "--"+map.get(o));
}
// 如何遍历key-value for循环 entrySet()
Set keyValue = map.entrySet();for(Object o : keyValue){
Map.Entry entry = (Map.Entry) o;
System.out.println(entry);
System.out.println(entry.getKey()+"----"+entry.getValue());
}
}
}