Map

package com.newedu.jb.day19.map;

 

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

 

/**

 *Map是一个接口,是集合

 *

 * 存储的是键值对,一个键对应一个一个值。

 * 特点:

 * 1:键不允许重复。

 * 2:键允许为null值。

 * 3:存取无序。

 *

 * 成员方法:

 * Vput(K key,V value):向map中添加键值对

 *     如果键之前不存在(containsKey(key)),直接添加,并且返回null

 *     如果键存在(containsKey(key) =true), 更新 键 对应的值,并且返回 键之前对应的值。。

 * Vremove(Object key):从map中移除键值对;

 *     移除之前,先将key 与map中所有的已经存在的key做比较,key相同,认为键值对存在,直接移除键值对。

 *     返回值:

 *      key找不到,返回null

 *      key找到,就返回key对应的value值

 *void clear():清除所有的键值对。

 *boolean containsKey(Object key):判断是否包含某一个指定的键值。返回boolean值

 *boolean containsValue(Object value):判断是否包含某一个指定的值。返回boolean值

 *boolean isEmpty():判断map是否为空

 *int size():返回map中键值对的个数。

 * Vget(Object key):根据指定的键,返回对应的值

 *Set<K> keySet():返回map中所有的key的set集合

 *Collection<V> values():返回map所有的值的collection集合

 *Set<Map.Entry<K,V>> entrySet():返回map中所有的键值对对应的set集合  ***重点

 *

 *    Entry 表示一个接口,表示映射项。 key-value

 *        成员方法:

 *          K getKey() :返回与此项对应的键。

 *          V getValue():返回与此项对应的值。

 *           V setValue(V value) :用指定的值替换与此项对应的值(可选操作)。

 *@author jerry

 *

 */

public class MapDemo1 {

 

       publicstatic void main(String[] args) {

 

              //第一步:创建集合对象

              Map<String,Integer> map = newHashMap<>();

             

      

              //第三步:向集合中添加元素

              Integeri1 = map.put("jerry", 20);

              Integeri2 = map.put("susan", 19);

              Integeri3 = map.put("peter", 18);

              Integeri4 = map.put("jerry", 18);//重复的键

              Integeri5 = map.put(null, 18);

              Integeri6 = map.put("william", null);

             

             

              System.out.println("向map 中添加 jerry-20的返回值:"+i1);

              System.out.println("向map 中添加 susan-19的返回值:"+i2);

              System.out.println("向map 中添加 peter-18的返回值:"+i3);

              System.out.println("向map 中添加 jerry-18的返回值:"+i4);

              System.out.println("向map 中添加 null-18的返回值:"+i5);

              System.out.println("向map 中添加 william-null的返回值:"+i6);

             

              System.out.println("================移除===========");

              Integerrem1 = map.remove("susan");

              System.out.println("从map中移除 susan 的返回值:"+rem1);

             

              Integerrem2 = map.remove("anna");//因为不存在anna,所以返回null值

              System.out.println("从map中移除 anna 的返回值:"+rem2);

             

             

             

//            map.clear();

              System.out.println("map是否为空?"+map.isEmpty());

              System.out.println("map的大小?"+map.size());

             

              System.out.println("map中是否包含 jerry呢?"+map.containsKey("jerry"));

              System.out.println("map中是否包含 10 这个value呢?"+map.containsValue(10));

             

              System.out.println("================遍历map集合===========");

              //第四步:遍历map

              //Set<K> keySet()  返回此映射中包含的键的 Set 视图。

              //V get(Object key) 返回指定键所映射的值;

             

              Set<String>set = map.keySet();//返回所有键的集合

             

              Iterator<String>iter = set.iterator();

             

              while(iter.hasNext()){

                     Stringkey = iter.next();

                    

                     //再根据key 获取对应的值

                     Integer  value = map.get(key);

                    

                     System.out.println("map中的键值对:key="+key +" value="+value);

              }

             

              System.out.println("========遍历map中的所有值=========");

              //获取所有的值的collection集合

              Collection<Integer>col = map.values();

             

              for(Integeri : col){

                     System.out.println("map中值为:"+i);

              }

             

         System.out.println("==========Map.Entry<>来遍历map=======");

         

          Set<Map.Entry<String, Integer>>entries = map.entrySet();

          // entries 是一个 set集合

         

          for(Map.Entry<String, Integer> entry:entries){

                

                 //通过entry 来获取每一个 key 和value

                 String key = entry.getKey();

                 Integer i = entry.getValue();

                

                 System.out.println("通过Map.Entry来遍历map,其中key="+key+" - value="+i);

          }

         

         

        

       }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值