Java集合框架总结之Map集合的使用

来源:互联网 发布:网络棋牌害了多少人 编辑:程序博客网 时间:2024/06/10 14:34

MapCollection的区别

Map一次添加一对元素,Collection一次添加一个元素

Map也称双列集合,Collection也称单列集合

Map集合存储的是“键——值”对,而且必须保证键的唯一性

一、常用方法

1、基本方法

(1)添加

value put put(key,value) 返回前一个和key相关联的值,如果没有返回null

举例:key(丈夫)与value(妻子)结婚,返回值是前妻,如果是头婚,没有前妻

(2)删除

void clear() 清空Map集合

Value remove(key) 根据指定的key删除元素,返回该键对应的值

(3)判断

boolean containsKey(key)

boolean containsValue(value)

boolean isEmpty()

(4)获取

value get(key)  通过键获取值,如果没有该键,返回null

当然可以通过返回null,判断是否包含指定的键

int size() 返回键值对的个数

2、取出Map中的所有元素,keySet()方法

方法:

第一步:通过keySet()方法获取Map中所有键所在的Set集合,再通过Set的迭代器获取每一个键,对每一个键获取其对应的值即可。

<span style="font-size:14px;">class MapDemo {public static void main(String[] args) {Map<Integer, String> map = new HashMap<Integer, String>(); // 存储学号和姓名map.put(1, "zhangsan");map.put(2, "lisi");map.put(3, "wangwu");Set<Integer> keySet = map.keySet();Iterator it = keySet.iterator();while (it.hasNext()) {Integer i = (Integer) it.next();String value = map.get(i);System.out.println(i + "=" + value);}}}</span>

 

3、entrySet()方法

该方法将键和值的映射关系作为对象存储到Set集合中,而这个映射关系的类型就是Map.Entry类型(相当于结婚证)

<span style="font-size:14px;">Map<Integer, String> map = new HashMap<Integer, String>();Set<Map.Entry<Integer, String>> entrySet = map.entrySet();Iterator it = entrySet.iterator();while (it.hasNext()) {Map.Entry<Integer, String> entry = (Entry<Integer, String>) it.next();System.out.println(entry.getKey() + ":" + entry.getValue());}</span>

 

Map.Entry接口:

(1)Map.Entry接口是Map的内部静态接口

注:只有内部接口才能用static修饰

(2)为什么定义为内部接口

将键和值的映射关系封装成对象,映射关系访问的是Map中的keyvalue,即外部规则里面有内部规则,内部规则直接访问外部规则中的内容。

4、返回所有的值values()方法

<span style="font-size:14px;">Collection<String> values = map.values() ;Iterator it = values.iterator() ;while( it.hasNext() ){System.out.println( it.next() ) ; }</span>

注:返回类型是Collection。键是唯一的,所以返回的是Set,值不是唯一的,所以返回的是Collection

二、Map常用子类

| -- HashTable : 内部结构是哈希表,同步。不允许null作为键和值(面试)

| -- Properties : 用来存储键值对型的配置文件的信息,可以和IO技术相结合。

| -- HashMap : 内部结构是哈希表,不同步。允许null作为键和值

| -- TreeMap : 内部结构是二叉树,不同步。可以对Map集合中的键进行排序


注:HashMapTreeMap的用法与HashSetTreeSet相同,二者都要保证元素唯一。

1HashMap存储自定义对象时,自定义对象一定要重写hashCode()equals()

2TreeMap存储自定义对象时,自定义对象一定要实现Comparable接口,或者构造TreeMap时指定比较器。

0 0