JAVA学习--集合Map的使用
来源:互联网 发布:2016美国大选结果数据 编辑:程序博客网 时间:2024/04/29 08:55
* Map接口
* |-----HashMap:Map的主要实现类
* |-----LinkedHashMap:使用链表维护添加进Map中的顺序。故遍历Map时,是按添加的顺序遍历的。
* |-----TreeMap:按照添加进Map中的元素的key的指定属性进行排序。要求:key必须是同一个类的对象!
* 针对key:自然排序 vs定制排序
* |-----Hashtable:古老的实现类,线程安全,不建议使用。
* |----Properties:常用来处理属性文件。键和值都为String类型的
----------------------------------------------------------------------------------------------------------------
Object put(Object key,Objectvalue):向Map中添加一个元素
Object remove(Objectkey):按照指定的key删除此key-value
void putAll(Map t)
void clear():清空
Object get(Objectkey):获取指定key的value值。若无此key,则返回null
boolean containsKey(Object key)
boolean containsValue(Object value)
int size():返回集合的长度
boolean isEmpty() boolean equals(Objectobj)
HashMap:1.key是用Set来存放的,不可重复。value是用Collection来存放的,可重复
一个key-value对,是一个Entry。所有的Entry是用Set存放的,也是不可重复的。
2.向HashMap中添加元素时,会调用key所在类的equals()方法,判断两个key是否相同。若相同则只能添加 进后添加的那个元素。
@Test
public voidtest1() {
Map map =new HashMap();
map.put("AA", 213);
map.put("BB", 456);
map.put("BB", 45);
map.put(123,"CC");
map.put(null, null);
map.put(newPerson("DD", 23), 89);
map.put(newPerson("DD", 23), 87);
System.out.println(map.size());
System.out.println(map);
map.remove("BB");
System.out.println(map);
Object value= map.get(1234);
System.out.println(value);
}
--------------------------------------------------------------------------------------------------------
* 如何遍历Map Set keySet() Collection values() SetentrySet()
@Test
public voidtest2() {
Map map =new HashMap();
map.put("AA", 213);
map.put("BB", 45);
map.put(123,"CC");
map.put(null, null);
map.put(newPerson("DD", 23), 89);
//1.遍历key集。
Set set =map.keySet();
for (Objectobj : set) {
System.out.println(obj);
}
//2.遍历value集
Collectionvalues = map.values();
Iterator i =values.iterator();