A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 金城武 初级黑马   /  2018-4-7 19:54  /  1351 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java集合Map
Map:
         将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。
1.1     Map集合的成员方法
V put(K key,V value):添加元素
V remove(Object key):根据键删除键值对元素
void clear():移除所有的键值对元素
booleancontainsKey(Object key):判断集合是否包含指定的键
booleancontainsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
int size():返回集合中的键值对的对数
packagecom.itheima_01;
importjava.util.HashMap;
import java.util.Map;
/*
* V put(K key,V value):添加元素
* V remove(Object key):根据键删除键值对元素
* void clear():移除所有的键值对元素
* boolean containsKey(Object key):判断集合是否包含指定的键
* boolean containsValue(Object value):判断集合是否包含指定的值
* boolean isEmpty():判断集合是否为空
* int size():返回集合中的键值对的对数
*
* Map集合中的实现类的数据结构只针对键有效。
*/
public class MapDemo2{
    public static void main(String[] args) {
         //创建集合对象
         Map<String,String> map = newHashMap<String,String>();
         
         //V put(K key,V value):添加元素
         //如果键是第一次存储,就直接存储元素,返回null
         //如果键不是第一次存储,就用值把以前的值替换,返回以前的值
//      System.out.println("put:"+map.put("张无忌","周芷若"));
//      System.out.println("put:"+map.put("张无忌","赵敏"));
         map.put("张无忌","赵敏");
         map.put("郭靖","黄蓉");
         map.put("杨过","小龙女");
         
         //V remove(Object key):根据键删除键值对元素
//      System.out.println("remove:"+map.remove("郭靖"));
//      System.out.println("remove:"+map.remove("郭襄"));
         
         //void clear():移除所有的键值对元素
         //map.clear();
         
         //boolean containsKey(Object key):判断集合是否包含指定的键
//      System.out.println("containsKey:"+map.containsKey("郭靖"));
//      System.out.println("containsKey:"+map.containsKey("郭襄"));
         
         //boolean containsValue(Object value):判断集合是否包含指定的值 自己练习
         
         //boolean isEmpty():判断集合是否为空
         //System.out.println("isEmpty:"+map.isEmpty());
         
         //int size():返回集合中的键值对的对数
         System.out.println("size:"+map.size());
         
         //输出集合对象
         System.out.println(map);
    }
}
1.2     Map集合的获取功能测试
V get(Object key):根据键获取值
Set<K> keySet():获取所有键的集合
Collection<V>values():获取所有值的集合
packagecom.itheima_01;
importjava.util.Collection;
importjava.util.HashMap;
import java.util.Map;
import java.util.Set;
/*
* V get(Object key):根据键获取值
* Set<K> keySet():获取所有键的集合
* Collection<V> values():获取所有值的集合
*/
public class MapDemo3{
    public static void main(String[] args) {
         //创建集合对象
         Map<String,String> map = newHashMap<String,String>();
         
         //添加元素
         map.put("郭靖","黄蓉");
         map.put("杨过","小龙女");
         map.put("张无忌","赵敏");
         
         //V get(Object key):根据键获取值
         System.out.println("get:"+map.get("张无忌"));
         System.out.println("get:"+map.get("张三丰"));
         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> values =map.values();
         for(String value : values) {
               System.out.println(value);
         }
    }
1.3     Map集合的遍历之键值对对象找键和值
Map集合遍历的方式2
思路:
         A:获取所有结婚证的集合
         B:遍历结婚证的集合,得到每一个结婚证
         C:根据结婚证获取丈夫和妻子
转换:
         A:获取所有键值对对象的集合
         B:遍历键值对对象的集合,得到每一个键值对对象
         C:根据键值对对象获取键和值

1.4     集合的嵌套练习之ArrayList嵌套HashMap
案例代码十五:
package com.itheima;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;
/*
* 需求:ArrayList集合嵌套HashMap集合并遍历。
* 定义一个ArrayList集合,它包含三个元素,每一个元素都是HashMap类型的。
* 每一个HashMap集合的键和值都是String类型的,
* 键:String          丈夫的姓名
* 值:String          妻子的姓名
* 给出如下的字符串数据,请用代码实现需求。
* 第一个HashMap集合的元素:
*             孙策                   大乔
*             周瑜                   小乔
* 第二个HashMap集合的元素:
*             郭靖                   黄蓉
*             杨过                   小龙女
* 第三个HashMap集合的元素:
*             令狐冲     任盈盈
*             林平之     岳灵珊
*/
public class ArrayListIncludeHashMapTest {
         publicstatic void main(String[] args) {
                   //创建集合对象
                   ArrayList<HashMap<String,String>>array = new ArrayList<HashMap<String,String>>();
                  
                   //创建元素1
                   HashMap<String,String>hm1 = new HashMap<String,String>();
                   hm1.put("孙策","大乔");
                   hm1.put("周瑜","小乔");
                   //把元素添加到array
                   array.add(hm1);
                  
                   //创建元素2
                   HashMap<String,String>hm2 = new HashMap<String,String>();
                   hm2.put("郭靖","黄蓉");
                   hm2.put("杨过","小龙女");
                   //把元素添加到array
                   array.add(hm2);
                  
                   //创建元素3
                   HashMap<String,String>hm3 = new HashMap<String,String>();
                   hm3.put("令狐冲","任盈盈");
                   hm3.put("林平之","岳灵珊");
                   //把元素添加到array
                   array.add(hm3);
                  
                   //遍历ArrayList集合
                   for(HashMap<String,String>hm : array) {
                            Set<String>set = hm.keySet();
                            for(Stringkey : set) {
                                     Stringvalue = hm.get(key);
                                     System.out.println(key+"---"+value);
                            }
                            System.out.println("-----------------");
                   }
                  
         }
}

1 个回复

倒序浏览
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马