Map系列

双列集合特点

1.双列集合一次需要存一对数据,分别为键和值

2.键不能重复,值可以重复

3.键和值是一一对应的,每一个·键只能找到自己对应的值

4.键+值这个整体我们称之为“键值对”或者“键值对对象”,在Java中叫做Entry对象“;

Map中常见的API

put(K key,V value)  添加元素

remove(Object key) 根据键删除键值对元素

clear() ;       移除所有的键值对元素

containsKey()  判断集合是否包含指定的键

containsValue()  判断集合是否包含指定的值

isEmpty()  判断集合是否为空

size()   集合的长度

Map的遍历方式

1. 增加for   lambda 迭代器

2.根据键值对遍历

Set<Map.Entry<String,String>>s=m.entrySet();

for(Map.Entry<String,String>m1:s){
    String key=m1.getKey();
    String value=m1.getValue();
    System.out.println(key+" "+value);
}

3.lambda

m.forEach(new BiConsumer<String, String>() {
    @Override
    public void accept(String s, String s2) {
        System.out.println(s+"="+s2);
    }
});

m.forEach((key,value)->System.out.println(key+"="+value));

HashMap的底层原理

只看键的哈希值,来进行键的插入,如果哈希值一样并且键值一样,那么会将值覆盖,如果键不一样(哈希值一样),那么就让它挂在下面(如同链表一样)

LinkedHashMap

由键决定:有序,不重复,无索引   这里的有序指的是保证存储和取出的元素顺序一致

底层数据结构是依然哈希表,只要每个键值对元素又额外多了一个双链表的机制记录存储的顺序

TreeMap

由键决定特性:不重复,无索引,可排序

可排序:对键进行排序  默认按照键的从小到大进行排序,也可以自己规定键的排序规则

1.实现Comparable接口,指定比较规则

2.创建集合时传递Comparator比较器对象,指定比较规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值