Map的解析HashMap和TreeMap

/*
Map:是一个单独的接口,不属于Collection,属于集合,一对一对的存,称为键值对

    HashMap:底层使用的数据结构是哈希表,线程不安全的
    TreeMap:底层使用的数据结构是二叉树,线程不安全的

添加:
 V put(K key, V value) 
 void putAll(Map<? extends K,? extends V> m)

删除:
 V remove(Object key) 
 void clear() 

获取:
  V get(Object key) 

  Set<K> keySet() 
  Set<Map.Entry<K,V>> entrySet() 
  int size() 
  Collection<V> values() 
判断:
   boolean isEmpty() 
   boolean containsKey(Object key) 
   boolean containsValue(Object value) 

*/

下面是Map的方法的一些用法

import java.util.*;
class Demo11 
{
    public static void main(String[] args) 
    {  
        //键是不能重复的,如果键重复了,那么后添加的会覆盖之前添加的
        Map<String,String> map = new HashMap<>();

        //添加键值对儿
        //返回的上一次添加的相同键的值
        //System.out.println(map.put("001","dongdong"));//null
        //System.out.println(map.put("001","嘻嘻"));//"dongdong"

        map.put("001","dongdong");
        map.put("002","xixi");
        map.put("003","nannan");

        map.remove("001");//根据键删除一对
        System.out.println(map);

        String value = map.get("002");//根据键获取值
        System.out.println(value);

        Collection<String>  values = map.values();//得到所有值的集合
        Iterator<String> ite = values.iterator();
        while(ite.hasNext())
        {
            System.out.println(ite.next());
        }

        boolean b1 = map.containsKey("003");//判断是否包含某个键
        boolean b2 = map.containsValue("xixi");//判断是否包含某个值
        System.out.println(b1+","+b2);

    }
}

对于Map里面内容的遍历,我们有两种方法

/*
遍历Map集合的方式:
 Set<K> keySet(): 得到所有键的集合存储到一个Set中,并返回该Set集合,因为Set有迭代器,所以使用迭代器迭代,每次迭代出一个键,再根据键获取值

 Set<Map.Entry<K,V>> entrySet(): 得到每个键值对对应的映射关系类型的值,存到Set集合中,并返回该集合,因为Set有迭代器,每次迭代出来的是一个映射关系类型的值,从这个映射关系类型的值中既可以得到键,也可以得到值

    Entry是定义在Map中的一个静态接口,有了集合,有了集合中的键值对,才会存在映射关系,所以映射关系是对集合内部事物的描述,所以定义在Map内部

*/

下面是两个遍历方式的简单应用

import java.util.*;
class Demo12 
{
    public static void main(String[] args) 
    {
        Map<String,String> map =new HashMap<>();

        map.put("001","dongdong");
        map.put("002","xixi");
        map.put("003","nannan");


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

        Iterator<Map.Entry<String,String>>  ite = entry.iterator();

        while(ite.hasNext()){

            Map.Entry<String,String> en = ite.next();
            String key = en.getKey();
            String value = en.getValue();
            System.out.println(key+"="+value);
        }


        /*
        Set<String> keys =  map.keySet();
        Iterator<String> ite = keys.iterator();
        while(ite.hasNext())
        {
            String key = ite.next();
            String value = map.get(key);
            System.out.println(key+"="+value);
        }*/



    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值