java学习笔记(二十一)map集合

1、概述

双列集合,是一个接口,有两个泛型,将键映射到值

特点:

​ 1、双列集合,一个元素包含两个值(键值)

​ 2、Map集合中的元素,键和值的数据类型可以相同也可以不同

​ 3、K不允许重复,Key与value一一对应

2、常用子类

2.1、HashMap集合

实现了Map接口

特点:

​ 底层是哈希表,查询速度快

​ 是无序集合

2.2、LinkedHashMap

继承了HashMap集合

特点:

​ 底层是哈希表加链表(保证迭代顺序)

​ 是有序集合

3、Map集合常用方法

public V put(K key,V value);//把指定的键值对添加到Map集合中
public V remove(Object Key);//把指定的键所对应的的键值对元素,在Map中删除,返回被删元素的值
public V get(Object Key);//根据指定的键,在Map集合中获取相应的值
boolean containsKey(Object Key);//判断是否有指定值

4、遍历Map集合

使用迭代器或增强for

步骤:

​ 1、使用map集合中的方法keySet(),把map中所有key取出,存储在一个set集合中

​ 2、遍历Set集合,获取map集合中的每一个key

​ 3、通过map集合中的方法get(key),通过key找到值

示例:

//使用迭代器
Set<String> set = map.keySet();
        Iterator<String> it = set.iterator();
        while(it.hasNext()){
            String key = it.next();
            Integer value = map.get(key);
            System.out.println(value);
        }
//使用增强for
Set<String> set = map.keySet();
for (String s : set) {//s中是键
            Integer value = map.get(s);
            System.out.println(s+value);
        }

使用entry对象遍历

方法:Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的Set视图

实现步骤

​ 1、使用Map集合中的方法entrySet(),把map集合中多个entry对象取出,存到一个Set集合中

​ 2、遍历Set集合,获取每一个Entry对象

​ 3、使用entry对象中的方法getKey()和getvalue()获取键和值

Set<Map.Entry<String, Integer>> set = map.entrySet();
        //使用迭代器
        Iterator<Map.Entry<String, Integer>> it = set.iterator();
        while(it.hasNext()){
            Map.Entry<String, Integer> entry = it.next();
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+value);
        }
Set<Map.Entry<String, Integer>> set = map.entrySet();
 for (Map.Entry<String,Integer> entry:set){
            String key = entry.getKey();
            Integer value = entry.getValue();
            System.out.println(key+value);
        }

5、HashMap存储自定义类型

必须重写HashCode和equals方法

6、LinkedHashMap

Map接口的哈希表和链表实现类,有序集合

7、HashTable

Map接口的实现类,底层也是哈希表,已被取代,不允许为空,单线程,速度慢

其子类Property还在使用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值