Map集合

Map集合

Map接口的特点:

  1. 用于存储任意键值对(Key-Value)
  2. 键:无序、无下标、不允许重复(唯一)
  3. 值:无序、无下标、允许重复

在这里插入图片描述


Map接口的常用方法

    @Test
    public void Test(){
        Map<Integer,String> map =new HashMap<Integer, String>();
        //put(),添加Key,和value元素
        map.put(1,"张三");
        map.put(2,"李四");
        map.put(3,"王五");
        //get(),根据key来获取value值
        map.get(1);
        //keySet(),返回一个set集合,实现集合遍历功能
        for (Object key :map.keySet() ) {
            System.out.println(key+map.get(key));
        }
        //entrySet(),这是Map接口中的内部接口也是返回一个Set集合,
        //再使用Entry中的getKey和getValue方法取值
        Set<Map.Entry<Integer,String>> entries = map.entrySet();
        for (Map.Entry<Integer, String> entry : entries) {
            System.out.println(entry.getKey()+entry.getValue());
        }
    }

keySet()方法和Map.Entry都是返回Set集合;
但是keySet方法只是获取了Map集合中的Key ,想要获取Value还是得从Map中去拿。
Entry则是把整个键值对拿过来封装成Entry对象,可以直接获取Key和Value,所以Map.Entry效率高


HashMap(重点)

  1. HashMap底层结构为哈希表(数组+链表+红黑树),当链表长度大于8且数组长度大于等于64的时候,就会变成红黑树提高查询修改效率,如果链表长度缩小到6以下就会又变成数组链表形式
  2. HashMap允许用null作为Key或Value
  3. 线程不安全,但是运行效率快

HashTable

  1. 线程安全,运行效率慢
  2. 不允许用null作为Key或Value

Properties

是HashTable的子类,要求Key和Value的类型都是String,通常用于配置文件的读取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值