Java基础之Map集合概述

Java基础之Map集合综述

简介

map集合又称键值对集合

特点

  1. Map集合都是由键决定的。
  2. Map集合的键是无序,不重复的,无索引的。
  3. Map集合的值可以重复
  4. Map集合键值对都可以为null
  5. HashMap:元素按照键是无序,不重复,无索引的
  6. LinkedHashMap:元素按照键是有序的,不重复,无索引的

Map集合的API

  1. 添加元素 put 方法

    Map<String,Integer> map = new HashMap<>();
    map.put(“娃娃”,2);

  2. 清除元素 clear()

    map.clear()

  3. 判断集合是否为空

map.isEmpty();

  1. 获取集合大小

    map.size()

  2. 根据键获取对应值

    map.get(“娃娃”)

  3. 根据键删除某个元素

    map.remove(“娃娃”)

  4. 判断是否包含某个键

    map.containsKey(“娃娃”)

  5. 判断是否包含某个值

    map.containsValue(“娃娃”)

  6. 获取所有键的集合

    Set set = map.keySet()

  7. 获取所有值的集合

    Collection values = map.values()

  8. 将一个集合放入另一个集合
    Map<String,Integer> map2 = new HashMap<>()
    map.putAll(map2)

集合遍历

1.键找值方式

    Set<String> keys = map.keySet();
    for(String key: keys){
        Integer value = map.get(key);
    }
  1. 键值对方式,把键值对当成一个整体遍历

    Set<Map.Entry<String, Integer>> entries = map.entrySet();
    for(Map.Entry<String, Integer> entry: entries){
        String key = entry.getKey();
        Integer value = entry.getValue();
    }
    
  2. lambda表达式

    map.forEach((k, v) -> {
        System.out.println(k + ":" + v);
    })
    

Map集合自定义类型

map集合键和值都可以为自定义类型

注意重写equals和hashCode方法

LinkedHashMap

注意此map可以按照添加顺序和访问顺序 排序

public LinkedHashMap(int initialCapacity,
         float loadFactor,
                     boolean accessOrder) {
    super(initialCapacity, loadFactor);
    this.accessOrder = accessOrder;
}
这个accessOrder,它表示:
(1false,所有的Entry按照插入的顺序排列
(2true,所有的Entry按照访问的顺序排列

TreeMap

可排序不重复的键值对集合

按照键排序

默认升序

  1. 可以传递比较器构造treemap

Map<People, String> people = new TreeMap<>(new Comparator(){

​ public int compare(People p1, People p2){

​ return Double.compare(p1.getWeight(), p2.getWeith());

​ }

})

  1. 可以使用对象实现compareble接口

    public class Test implements Comparable

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值