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:B3
System.out.println("get:" + map.get("A6")); //get:null
System.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集合遍历的两种方式比较图解

 
 
 
 

Java API —— Map接口的更多相关文章

  1. JAVA ,Map接口 ,迭代器Iterator

    1.    Map 接口概述 java.util.Map 接口描述了映射结构, Map 接口允许以键集.值集合或键 - 值映射关系集的形式查看某个映射的内容. Java 自带了各种 Map 类. 这些 ...

  2. Java集合Map接口与Map.Entry学习

    Java集合Map接口与Map.Entry学习 Map接口不是Collection接口的继承.Map接口用于维护键/值对(key/value pairs).该接口描述了从不重复的键到值的映射. (1) ...

  3. Java Core - Map接口

    Map:是一组映射The java.util.Map interface represents a mapping between a key and a value. The Map interfa ...

  4. java中map接口hashMap以及Enty之间的用法和关系

    java中map接口hashMap以及Enty之间的转换 首先说的是map接口: Map提供了一种映射关系,其中的元素是以键值对(key-value)的形式存储的,能够实现根据key快速查找value ...

  5. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  6. Java 之 Map 接口

    一.Map 接口概述 java.util.Map 接口专门用来存放键值对这种对象关系的对象. 下面比较一下 Collection 与 Map 的区别: Collection 中的集合,元素是孤立存在的 ...

  7. Java集合——Map接口

    1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V  put(key,value) ...

  8. Java容器——Map接口

    1.定义 Map用于保存存在映射关系<key, value>的数据.其中key值不能重复(使用equals()方法比较),value值可以重复. 2.常用实现类 HashMap:和Hash ...

  9. Java容器Map接口

    Map接口容器存放的是key-value对,由于Map是按key索引的,因此 key 是不可重复的,但 value 允许重复. 下面简单介绍一下Map接口的实现,包括HashMap,LinkedHas ...

随机推荐

  1. php微型mvc框架创建步骤

    创建数据库和表结构,并且添加模拟数据: 新建models.views.controllers.utilities和include五个文件夹:models:模型层     model.php:模型基类  ...

  2. Android中关于日期时间与时区的使用总结

    在开发Android的过程中,出现过几次由于日期时间导致的问题,而且主要是由于时区的原因导致,所以一直想总结一下,形成一个良好的开发规范.   一.Unix时间戳   Unix时间戳(Unix tim ...

  3. Log4j配置和简单使用

    Log4j是一款基于Java的开源日志组件,Log4j功能非常强大,我们可以将日志信息输出到控制台.文件.用户界面,也可以输出到操作系统的事件记录器和一些系统常驻进程.更值得一提的是,Log4j可以允 ...

  4. fawef

    欢迎使用马克飞象 @(示例笔记本)[马克飞象|帮助|Markdown] 马克飞象是一款专为印象笔记(Evernote)打造的Markdown编辑器,通过精心的设计与技术实现,配合印象笔记强大的存储和同 ...

  5. c#之反射总结

     1.了解什么事程序集 2.加载程序集 首先要加载需要加载的程序集,然后找到指定的类型,进而往下进行动态加载. 要加载的程序集中的内容: public class Class1:Person { pr ...

  6. Valid format values for declare-styleable/attr tags[转]

    http://chaosinmotion.com/blog/?p=179 reference string color dimension boolean integer float fraction ...

  7. AvalonDock 2.0+Caliburn.Micro+MahApps.Metro实现Metro风格插件式系统(菜单篇)

    这章主要说插件的菜单,可以说菜单是最核心的部分,前面我们已经实现了Document添加,现在主要就是生成具有层级关系的菜单,以及把菜单跟我们自定义的Document关联起来,也就是MenuPart-& ...

  8. BAT CMD 批处理文件脚本 -2

    http://checheng1988.blog.51cto.com/4725808/1090733 在很多windows程序中会见到很多用扩展名为.bat和.cmd结尾的文件,那么这些文件能干什么呢 ...

  9. 3143: [Hnoi2013]游走 - BZOJ

    Description 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点, ...

  10. JS中删除字符串中的空格

    问题描述:         在进行字符串操作时,由于字符串中存在较多的空格,因此需要考虑取消字符串中的空格 问题解决:       (1)删除字符串中的前导空格(字符串的前面的空格): 注意:这里使用 ...