Map集合

知识点:1.map集合相关方法的介绍,
2.map集合的遍历,不支持直接遍历,可以间接遍历,通过迭代器遍历
3. HashMap与Hashtable的区别??
import java.util.Map;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;
public class TestMap{
    /*知识点:1.map集合相关方法的介绍,
     2.map集合的遍历,通过迭代器遍历
     HashMap与Hashtable的区别??
    */
    public static void main(String []args){
        /*Map集合也有泛型:泛型形式:前键后值*/
        //Map<String,String> map=new HashMap<String,String>();
        Map<String,String> map=new Hashtable<String,String>();
        //方法1:V put(K key,V value)将指定的值与此映射中的指定键相关联(可选操作)。
        map.put("key1","value1");
        map.put("key2","value2");
        map.put("key3","value3");
        map.put("key4","value4");
        //方法2:int size()返回此映射中的键-值映射关系数。
        int size=map.size();
        System.out.println(size);
        //方法3:V remove(Object key)如果存在此键的映射关系,则将其从映射中移除(可选操作)
        map.remove("key3");
        size=map.size();
        System.out.println(size);
        //方法4:boolean containsKey(Object key)
        /*作用:包含指定的键吗??如果此映射包含指定键的映射关系,则返回 true。
        参数:key - 测试在此映射中是否存在的键。 
        返回:如果此映射包含指定键的映射关系,则返回 true。 
        */
        boolean iden=map.containsKey("key2");
        System.out.println(iden);

        //方法5:boolean containsValue(Object value)
        /*作用:包含指定的值吗???如果此映射为指定值映射一个或多个键,则返回 true。
        参数:value - 测试在该映射中是否存在的值。 
        返回:如果该映射将一个或多个键映射到指定值,则返回 true。
        */
        boolean iden1=map.containsValue("value3");
        System.out.println(iden1);
        //方法6:boolean isEmpty()
        //如果此映射未包含键-值映射关系,则返回 true。
        boolean iden2=map.isEmpty();
        System.out.println(iden2);
        System.out.println("*********************");
        //Map集合不支持直接遍历,但是有多种方法对其进行间接遍历  
        //Entry<泛型1,泛型2>:一个键值对叫做一个Entry,其中的泛型和Map中的泛型相同
        //entry 是Map接口中的内部类
        //遍历Map集合方法1
        /*Map的一个重要方法:Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的 set 视图,
        返回的 set 中的每个元素都是一个 Map.Entry。*/
        Set<Map.Entry<String,String>> set=map.entrySet();
        //集合Set的一个方法:Iterator<E> iterator()
        Iterator<Map.Entry<String,String>> it=set.iterator();
        //Iterator 迭代器的两个方法:
        //boolean hasNext():如果仍有元素可以迭代,则返回 true。
        //E next():返回迭代的下一个元素。重复调用此方法直到 hasNext() 方法返回 false,这将精确地一次性返回迭代器指向的集合中的所有元素。 
        while(it.hasNext()){
            Map.Entry<String,String> en=it.next();
            String key=en.getKey();//??
            String value=en.getValue();//??
            System.out.println(key+"==="+value);
        }
        //方法2:
        System.out.println("**************************");
        //Map集合的一个方法:Set<K> keySet():返回此映射中包含的所有键的 set 视图。
        Set<String> keys=map.keySet();//得到键key1,key2,key4
        Iterator<String> itkeys=keys.iterator();
        while(itkeys.hasNext()){
            String key=itkeys.next();//迭代器得到key1,key2,key3
            //Map集合的get方法:V get(Object key)
            String value=map.get(key);//得到Map集合中键所对应的值
            System.out.println(key+"==="+value);
        }
        System.out.println("********************************");
        //HashMap与Hashtable的区别??
        //Map<String,String>map1=new Hashtable<String,String>();//错误
        //map1.put(null,"Hashtable的键可以为null");
        Map<String,String>map2=new HashMap<String,String>();
        map2.put(null,"HashMap的键不可以为空");
        size=map2.size();
        System.out.println(size);
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值