首页 / JAVA / Java 之 Map 集合
Java 之 Map 集合
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 之 Map 集合,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5593字,纯文字阅读大概需要8分钟。
内容图文
![Java 之 Map 集合](/upload/InfoBanner/zyjiaocheng/721/0006e76bb6034bd3a015c723d32da9c9.jpg)
一、Map 接口概述
java.util.Map 接口专门用来存放键值对这种对象关系的对象。
下面比较一下 Collection 与 Map 的区别:
-
- Collection 中的集合,元素是孤立存在的(理解是为单身),向集合存储元素采用一个个元素的方式存储。
- Map 中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找到所对应的值。
- Collection 中的集合称为 单列集合,Map 中的集合称为双列集合。
- 注意:Map 中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。
- Collection 中的集合,元素是孤立存在的(理解是为单身),向集合存储元素采用一个个元素的方式存储。
Map 集合的特点:
1. Map 集合是一个双列集合,一个元素包含两个值(一个 key,一个 value)
2. Map 集合中的元素,key 和 value 的数据类型可以相同,也可以不同
3. Map 集合中的元素,key 是不允许重复的,value 是可以重复的
4. Map 集合中的元素,key 和 value 是 一一对应
注意:Map接口中的集合都有两个泛型变量,在使用时,要为两个泛型变量赋予数据类型。两个泛型变量的数
据类型可以相同,也可以不同。
二、Map 接口中常用方法
常用方法:
public V put(K key,V value):把指定的键与指定的值添加到Map集合中 public V remove(Object key):把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值
public V get(Object key):根据指定的键,在 Map 集合中获取对应的值
public Set<K> keySet():获取 Map 集合中所有的键,存储到 Set 集合中
public Set<Map.Entry<K,V>> entrySet() : 获取到Map集合中所有的键值对对象的集合(Set集合)。
方法详解:
1、get() 方法
public V get(Object key) 根据指定的键,在Map集合中获取对应的值。 返回值: key存在,返回对应的value值 key不存在,返回null
2、containsKey() 方法
boolean containsKey(Object key) 判断集合中是否包含指定的键。 包含返回true,不包含返回false
3、remove() 方法
public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。 返回值:V key存在,v返回被删除的值 key不存在,v返回null
4、put() 方法
public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。 返回值:v 存储键值对的时候,key不重复,返回值V是null 存储键值对的时候,key重复,会使用新的value替换map中重复的value,返回被替换的value值
三、Map 集合遍历方法
1、通过 键找值 的方式
Map 集合中的方法:Set<K> keySet() 返回此映射中包含的键的 Set 视图。
实现步骤:
(1)使用 Map 集合中的方法 keySet(),把 Map 集合所有的 key 取出来,存储到一个 set 集合中
(2)通过 set 集合,获取 Map 集合中的每一个 key
(3)通过 Map 集合中的方法 get(key),通过 key 找到 value。
Demo:
1 public static void main(String[] args) { 2 //创建Map集合对象 3 Map<String,Integer> map = new HashMap<>(); 4 map.put("赵丽颖",168); 5 map.put("杨颖",165); 6 map.put("林志玲",178); 7 8 //1.使用Map集合中的方法keySet(),把Map集合所有的key取出来,存储到一个Set集合中 9 Set<String> set = map.keySet(); 10 11 //2.遍历set集合,获取Map集合中的每一个key 12 //使用迭代器遍历Set集合 13 Iterator<String> it = set.iterator(); 14 while (it.hasNext()){ 15 String key = it.next(); 16 //3.通过Map集合中的方法get(key),通过key找到value 17 Integer value = map.get(key); 18 System.out.println(key+"="+value); 19 } 20 System.out.println("-------------------"); 21 //使用增强for遍历Set集合 22 for(String key : set){ 23 //3.通过Map集合中的方法get(key),通过key找到value 24 Integer value = map.get(key); 25 System.out.println(key+"="+value); 26 } 27 System.out.println("-------------------"); 28 //使用增强for遍历Set集合 29 for(String key : map.keySet()){ 30 //3.通过Map集合中的方法get(key),通过key找到value 31 Integer value = map.get(key); 32 System.out.println(key+"="+value); 33 } 34 }
2、使用 Entry 对象遍历
Map 中存放的是两种对象,一种称为 key(键),一种称为 value(值),它们在在 Map 中是一一对应关系,这一对对象又称做 Map 中的一个 Entry(项) 。
Entry 将键值对的对应关系封装成了对象。即键值对对象,这样我们在遍历 Map 集合时,就可以从每一个键值对( Entry )对象中获取对应的键与对应的值。
既然Entry表示了一对键和值,那么也同样提供了获取对应键和对应值得方法:
public K getKey() :获取Entry对象中的键。 public V getValue() :获取Entry对象中的值。
Map集合中的方法:
Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的 Set 视图。
实现步骤:
(1)使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
(2)遍历Set集合,获取每一个Entry对象
(3)使用Entry对象中的方法getKey()和getValue()获取键与值
Demo:
1 public static void main(String[] args) { 2 //创建Map集合对象 3 Map<String,Integer> map = new HashMap<>(); 4 map.put("赵丽颖",168); 5 map.put("杨颖",165); 6 map.put("林志玲",178); 7 8 //1.使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中 9 Set<Map.Entry<String, Integer>> set = map.entrySet(); 10 11 //2.遍历Set集合,获取每一个Entry对象 12 //使用迭代器遍历Set集合 13 Iterator<Map.Entry<String, Integer>> it = set.iterator(); 14 while(it.hasNext()){ 15 Map.Entry<String, Integer> entry = it.next(); 16 //3.使用Entry对象中的方法getKey()和getValue()获取键与值 17 String key = entry.getKey(); 18 Integer value = entry.getValue(); 19 System.out.println(key+"="+value); 20 } 21 System.out.println("-----------------------"); 22 for(Map.Entry<String,Integer> entry:set){ 23 //3.使用Entry对象中的方法getKey()和getValue()获取键与值 24 String key = entry.getKey(); 25 Integer value = entry.getValue(); 26 System.out.println(key+"="+value); 27 } 28 }
注意:Map集合不能直接使用迭代器或者foreach进行遍历。但是转成 Set 之后就可以使用了。
四、Map 常用子类
1、HashMap:
2、TreehMap:
内容总结
以上是互联网集市为您收集整理的Java 之 Map 集合全部内容,希望文章能够帮你解决Java 之 Map 集合所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。