java高级特性之集合概述 其二

来源:互联网 发布:交换机端口绑定ip地址 编辑:程序博客网 时间:2024/05/17 04:38

Map接口

Map中数据存储特点

1,Map中数据存储的是Key—Value键值对

2,Map中所有的key是由Set存放,所有的key彼此不同。

key中的自定义的类需要重写hashCode和equals方法

3,Map中所有的values是由Collection存放的。

values中的自定义类需要重写equals方法。

4,一个key-value键值对构成一个entry。

所有的entry都是由set存放。entry的存储位置就是由entry中key的位置决定的。

|–HashMap,主要实现类,线程不安全,可以存储null

|–LinkedHashMap 用链表维护了Map集合中元素的个数

|–TreeMap,按照添加进Map集合中entry的key的指定属性来排序。要求key必须是同一个类 的对象 (自然排序&指定排序)

|–Hashtable 古老的实现类,线程安全,不可以存储null不建议使用

|–Properties:是Hashtable类的子类,通常用来处理属性文件,key和value都是String类型。

Map中的常用方法:

Object put(Object key,Object value):向Map中添加一个元素,若Map中key存在要添加的entry的key,则添加的entry替换已经存在的entry,并返回之前的entry中的value对象。

Object remove(Object key):按照指定的key删除此key-value

void putAll(Map t)

void clear():清空

Object get(Object key):获取指定key的value值。若无此key,则返回null

boolean containsKey(Object key): 是否包含指定的key

boolean containsValue(Object value) :是否包含指定的value

int size():返回集合的长度

boolean isEmpty()

boolean equals(Object obj)

Set keySet() 返回Map中的所有的key,类型为Set

Collection values(),返回Map中的所有的value,类型为Collecton

Set entrySet() 返回Map中的所有的Entry。类型为Set

Set entrySet = map.entrySet();//返回所有的键值对

for (Object o : entrySet) {

Map.Entry entry = (Map.Entry) o;//在没用泛型时,强转!!

System.out.println(entry.getKey() + “—->” + entry.getValue());

}

使用泛型对map的迭代

Map

0 0