1、Map接口概述

· 将键映射到值的对象
· 一个映射不能包含重复的键
· 每个键最多只能映射到一个值
2、Map接口和Collection接口的不同
·  Map是双列的;Collection是单列的
·  Map的键唯一;Collection的子体系Set是唯一的
·  Map集合的数据结构值针对键有效,跟值无关;Collection集合的数据结构是针对元素有效
3、Map集合的功能概述
  1)添加功能
    V put(K key,V value):添加元素(替换或修改功能)。
        如果键是第一次存储,就直接存储元素,返回null
        如果键不是第一次存在,就用新的值把以前的值替换掉,返回以前的值
2)删除功能
    void clear():移除所有的键值对元素
    V remove(Object key):根据键删除键值对元素,并把值返回
3)判断功能
    boolean containsKey(Object key):判断集合是否包含指定的键
    boolean containsValue(Object value):判断集合是否包含指定的值
    boolean isEmpty():判断集合是否为空
4)获取功能
    Set<Map.Entry<K,V>> entrySet():???
    V get(Object key):根据键获取值
    Set<K> keySet():获取集合中所有键的集合
    Collection<V> values():获取集合中所有值的集合
5)长度功能
    int size():返回集合中的键值对的对数
 例子1:

package mapdemos;
import java.util.HashMap;
import java.util.Map;
/*** Created by gao on 15-12-21.*/
public class MapDemo {public static void main(String[] args) {// 创建集合对象Map<String, String> map = new HashMap<String, String>();// 添加元素// V put(K key,V value):添加元素map.put("A1","B1");map.put("A2","B2");map.put("A3","B3");map.put("A4","B4");// void clear():移除所有的键值对元素//map.clear(); // map:{}// V remove(Object key):根据键删除键值对元素,并把值返回//System.out.println("remove:"+map.remove("A3")); //remove:B3//System.out.println("remove:"+map.remove("A2")); //remove:B2// boolean containsKey(Object key):判断集合是否包含指定的键//System.out.println("containsKey:"+map.containsKey("A2")); //containsKey:true//System.out.println("containsKey:"+map.containsKey("A6")); //containsKey:false// boolean isEmpty():判断集合是否为空//System.out.println("isEmpty:"+map.isEmpty()); //isEmpty:false//int size():返回集合中的键值对的对数System.out.println("size:"+map.size()); //size:4// 输出集合名称System.out.println("map:" + map);//无序输出
    }
}

例子2:

package mapdemos;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*** Created by gao on 15-12-21.*/
/** 获取功能:* V get(Object key):根据键获取值* Set<K> keySet():获取集合中所有键的集合* Collection<V> values():获取集合中所有值的集合*/
public class MapDemo02 {public static void main(String[] args) {// 创建集合对象Map<String, String> map = new HashMap<String, String>();// 添加元素// V put(K key,V value):添加元素map.put("A1", "B1");map.put("A2", "B2");map.put("A3", "B3");map.put("A4", "B4");// V get(Object key):根据键获取值System.out.println("get:" + map.get("A3")); //get:B3System.out.println("get:" + map.get("A6")); //get:nullSystem.out.println("--------------------------");// Set<K> keySet():获取集合中所有键的集合Set<String> set = map.keySet();for (String key : set) {System.out.println(key);}System.out.println("--------------------------");// Collection<V> values():获取集合中所有值的集合Collection<String> col = map.values();for(String value : col){System.out.println(value);}}
}

例子3:Map集合的遍历
方式1:根据键找值
· 获取所有键的集合
· 遍历键的集合,获取到每一个键
· 根据键找值

package mapdemos;
/*** Created by gao on 15-12-21.*/
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*** Map集合的遍历。* A:获取所有的键* B:遍历键的集合,获取得到每一个键* C:根据键去找值*/
public class MapDemo03 {public static void main(String[] args) {// 创建集合对象Map<String, String> map = new HashMap<String, String>();// 添加元素// V put(K key,V value):添加元素map.put("A1", "B1");map.put("A2", "B2");map.put("A3", "B3");map.put("A4", "B4");// 遍历// 获取所有的键Set<String> set = map.keySet();// 遍历键的集合,获取得到每一个键for (String key : set) {// 根据键去找值String value = map.get(key);System.out.println(key + "---" + value);}}
}

输出结果:
A2---B2
A1---B1
A4---B4
A3---B3

例子4:Map集合的遍历
方式2:根据键值对对象找键和值
· 获取所有键值对对象的集合
· 遍历键值对对象的集合,获取到每一个键值对对象
· 根据键值对对象找键和值

package mapdemos;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
/*** Created by gao on 15-12-21.*/
/*** Map集合的遍历:* A:获取所有键值对对象的集合* B:遍历键值对对象的集合,得到每一个键值对对象* C:根据键值对对象获取键和值*/
public class MapDemo04 {public static void main(String[] args) {// 创建集合对象Map<String, String> map = new HashMap<String, String>();// 添加元素// V put(K key,V value):添加元素map.put("A1", "B1");map.put("A2", "B2");map.put("A3", "B3");map.put("A4", "B4");// 获取所有键值对对象的集合Set<Map.Entry<String, String>> set = map.entrySet();// 遍历键值对对象的集合,得到每一个键值对对象for (Map.Entry<String, String> me : set) {// 根据键值对对象获取键和值String key = me.getKey();String value = me.getValue();System.out.println(key + "---" + value);}}
}

输出结果:
A2---B2
A1---B1
A4---B4
A3---B3

4、Map集合遍历的两种方式比较图解

转载于:https://www.cnblogs.com/yangyquin/p/5064229.html

Java API —— Map接口相关推荐

  1. java的Map接口

    java的Set接口 文章目录 java的Map接口 Map的创建 Map的常用方法 Map的遍历 Map的练习 java的Map接口 Map接口存储的是一组键值对象,提供的是key到value的映射 ...

  2. Java集合——Map接口学习总结

    一.HashMap实现类 1.常用方法 增加:put(K key, V value)删除:clear() remove(Object key)修改:查看:entrySet() get(Object k ...

  3. Java的Map接口,以及Collection和Collections的区别

    一.JAVA集合类(Collection接口.Map接口) java.util.Collection 是一个集合接口.它提供了对集合对象进行基本操作的通用接口方法.Collection接口在Java ...

  4. Java中Map接口及实现

    Map接口及实现:   1. Map接口   Map是从键到值的映射,键不允许重复,每个键最多能映射一个值. public interface Map<K,V> {     // Quer ...

  5. Java——API(接口)

    目录 Java 接口 接口与类相似点: 接口与类的区别: 接口特性 抽象类和接口的区别 接口的声明 NameOfInterface.java 文件代码: 实例 Animal.java 文件代码: 接口 ...

  6. 初学java之Map接口

    Map<k,v>java.util包中的键值映射的根接口,键值映射,他是一个接口,它不能包含重复的键,一个键只能对应一个值,该接口可以通过HashMap<k,v>来实现 转载于 ...

  7. Java中Map接口的使用和有关集合的面试知识点补充

    ✅作者简介:C/C++领域新星创作者,努力修炼后端中 ✨个人主页:叶落秋白的主页

  8. Java Api知识点

    目录 1.文档注释 2.String api 1.String 字符串 2.int length() 返回当前字符串的长度 3.int indexOf(String str): 4.String su ...

  9. Java中Map用法详解

    原文地址http://blog.csdn.net/guomutian911/article/details/45771621 原文地址http://blog.csdn.net/sunny2437885 ...

最新文章

  1. vue-devTools插件安装流程
  2. cat在MATLAB中的应用
  3. 显示电池电量的小工具
  4. 如何在RCP程序中添加一个banner栏
  5. 有关数据库的多库查询
  6. VC6++ output :error executing c:\windows\system32\cmd.exe.
  7. pdo mysql fedora_在Fedora 23 Server和Workstation上安装LAMP(Linux, Apache, MariaDB和PHP)
  8. [html] 你觉得新开发一个网站最困难的是哪些部分?
  9. HashMap30连问,彻底搞懂HashMap
  10. OpenGL, GLSL, DirectX, HLSL中的矩阵存储形式
  11. You must install libopus-dev
  12. IC卡清卡软件的使用
  13. 目标检测的图像特征提取之(三)Haar特征
  14. 2021全网最全Activiti7教程01(Activiti7详细介绍-欢迎收藏)
  15. Python while循环及用法详解
  16. 关于URDF中的惯性矩阵描述问题
  17. 《web安全原理分析与实践》
  18. 万字长文带你回顾电子游戏的七十多年历史(完整版)
  19. 科学研究设计五:实验设计
  20. 【论文】论文阅读记录

热门文章

  1. c++11-type_traits类型萃取
  2. SpringAop对struts2的Action设置切面织入时报错java.lang.NoSuchMethodException
  3. 在VS中编译C++静态库以及使用的方法
  4. Exchange EMC打开出错 解决
  5. 单个下拉框数据保持问题
  6. Android开源介绍-UI组件
  7. AHS of FCGRC 停课 Day 4
  8. [BZOJ1643][Usaco2007 Oct]Bessie's Secret Pasture 贝茜的秘密草坪
  9. ubuntu - 14.04,如何操作Gnome的任务栏?
  10. EF中的那些批量操作