首页 > 代码库 > 【JAVA集合框架之Map】
【JAVA集合框架之Map】
一、概述。
1.Map是一种接口,在JAVA集合框架中是一个非常重要的集合。
2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)
3.Map集合中存放的是一个一个的键值对,集合中存放的元素必须保证键的唯一性。
二、常用方法。
1.添加
V | put(K key, V value) 将指定的值与此映射中的指定键关联(可选操作)。 |
该方法的作用就是向集合中添加一个键值对,并返回一个值;如果键存在,则返回对应的旧值,并以新值取代之;如果键不存在则返回null。所以该方法也是修改的方法。
void | putAll(Map<? extends K,? extends V> m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。 |
该方法功能略,但注意泛型上限的使用。比较Collection方法:
boolean | addAll(Collection<? extends E> c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。 |
2.删除
V | remove(Object key) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 |
该方法根据键删除一个键值对,并返回值。如果没有这个键值对,将返回null。
void | clear() 从此映射中移除所有映射关系(可选操作)。 |
该方法功能就是清空集合。
3.判断
boolean | containsKey(Object key) 如果此映射包含指定键的映射关系,则返回 true。 |
boolean | containsValue(Object value) 如果此映射将一个或多个键映射到指定值,则返回 true。 |
这两个方法,前者判断是否存在指定键,后者判断是否存在指定值。
boolean | isEmpty() 如果此映射未包含键-值映射关系,则返回 true。 |
该方法用于判断该Map集合是否为空集合。
4.获取。
V | get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null 。 |
int | size() 返回此映射中的键-值映射关系数。 |
这两个方法,前者根据指定的键获取对应的值,如果集合中没有指定的键,则返回null;后者获取键值对的个数。
以上的方法为基本方法,重点方法在下面。
三、重点:Map集合的三种遍历方式。
1.第一种遍历方式:使用keySet方法。
Set<K> | keySet() 返回此映射中包含的键的 Set 视图。 |
该方法会返回一个包含所有键的Set集合。
遍历过程:先得到所有键的集合,遍历集合,根据键得到所有的值。
1 package p01.traverseDemo01.keySetDemo; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 import java.util.Set; 7 8 public class KeySetDemo { 9 10 public static void main(String[] args) {11 Demo01();12 }13 14 private static void Demo01() {15 Map<Integer,String>map=new HashMap<Integer,String>();16 map.put(1, "wangcai");17 map.put(2, "xiaoqiang");18 map.put(3, "xiaoming");19 20 Set<Integer>set=map.keySet();21 for(Iterator<Integer>it=set.iterator();it.hasNext();)22 {23 Integer key=it.next();24 String value=http://www.mamicode.com/map.get(key);25 System.out.println(key+":"+value);26 }27 28 }29 30 }
应当注意,结果是无序的,这是因为采用了HashMap作为示例,HashMap底层的数据结构是哈希表,存储元素的时候有自己的规则,所以无序。
2.第二种便利方式:使用entrySet方法。
Set<Map.Entry<K,V>> | entrySet() 返回此映射中包含的映射关系的 Set 视图。 |
此方法返回值也是一个Set集合,但是存储的内容是Map.Entry对象。Map.Entry是什么东西?
JDK1.6API的解释如下:
嵌套类摘要 | |
---|---|
static interface | Map.Entry<K,V> 映射项(键-值对)。 |
【JAVA集合框架之Map】
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。