Java集合-12

2023-12-17 19:24:57

Map的接口特点

key重复时会进行替换

package com.edu.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

@SuppressWarnings({"all"})
public class Demo01 {
    public static void main(String[] args) {
        Map map = new HashMap<>();
        map.put("no1","韩顺平");
        map.put("no2","张无忌");
        //1、k-v最后都是 HashMap$Node node = newNode(hash,key,value,null)
        //2、k-v为了方便遍历,还会创建 EntrySet集合,该集合存放的元素类型就是Entry,装的是Node<k v>地址指向
        // 而一个Entry对象就有key value EntrySet<Entry<K,V>> 也就是Set<Map.Entry<K,V>> entrySet
        //3、entrySet中,定义的类型是Map.Entry,但是实际上存放的还是HashMap$Node
        //  因为 static class Node<K,v> implements Map.Entry<K,V>
        //4、当把HashMap$Node 对象存放到 EntrySet 就方便我们的遍历,Map.Entry提供了两个重要的方
        // getkey() 和 getValue()
        Set set = map.entrySet();
        System.out.println(set.getClass());//HashMap$EntrySet

        for(Object obj:set){
            System.out.println(obj.getClass());//HashMap$Node 接口实现 向上转型了
            //1、向下转型 因为是Object接受的
            Map.Entry entry = (Map.Entry)obj;
            System.out.println(entry.getKey()+":"+entry.getValue());
        }

    }
}

?

文章来源:https://blog.csdn.net/weixin_47059164/article/details/135045285
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。