Map系列集合

特点:

在进行创建该系列的集合时:k,v都是数据类型

一般用于k数据类型(相当于元素)的拥有v什么量等

数据特征由键决定

键可以作为一个类,来填入旗下对象的属性

1.是双列集合,格式:{key1=value1,key2=value2,key3=value3...},一次需要存一对数据作为一个元素

2.Map集合的每个元素“ key(键)=value (值)”称为一个键对值/键值对对象/一个Entry对象,Map集合也被叫做”键值对集合“

3.Map集合的所有键是不允许重复的,但值可以重复,键和值是一 一对应的,每一个键只能找到自己对应的值

----------------------------------------------

可以应用于储存一 一对应的数据时。

可以使用集合的嵌套:将键对应的值为集合。

----------------------------------------------

Map集合体系(本身是一个泛型类型接口)

旗下实现类主要用的有HashMap<k,v>,TreeMap<k,v>....

Map系列集合的特点:

Map系列集合的特点都是由键决定的,值只是附属品,值是不做要求的。

HashMap(由键决定特点):无序,不重复,无索引;(用的较多)

LinkedHashMap(由键决定其特点):由键决定的特带你:有序,不重复,无索引。

(一般用于排序)

TreeMap(由键决定特点):按照大小默认升序排序,不重复,无索引。

在进行获取元素值得时候是用键来进行获取的对应值的。(需要用到方法)


Map集合提供的常用方法:

拓展常用方法: 接收导入的集合对象.putAll(被导入的集合对象);

特点在进行导入的时候原集合数据不丢失。但只能够添加键不同的数据

Map系列集合的遍历方式:

方式一:直接进行获取集合的所有键值在通过键值间接来获取其对应的value

package Map;
import java.util.*;

//进行对Map系列集合进行遍历
public class test {
    public static void main(String[] args) {
        Map<String,Double>  map=new HashMap<>();
        map.put("傻逼一号",1.1);
        map.put("傻逼二号",2.2);
        map.put("傻逼三号",3.3);
        map.put("傻逼四号",4.4);
        System.out.println(map);
        //获取map集合的所有键
        Set<String> keys=map.keySet();
        System.out.println(keys);
        //遍历所有键,获取对应的值
        for (String each: keys) {
            double value=map.get(each);
            System.out.println(each+"=========>"+value);

        }
    }


}

方法二:键值对直接进行遍历(将键值对看成一个整体进行遍历)

set<Map.Entry<K,V>> entrySet();

entrySet方法来进行获取所有键值对的数据详情。返回值在Set集合

Set<Map.Entry<K,V>>之后在进行用foreach循环来进行遍历

Map.Entry提供了getKey();用于获取键

Map.Entry提供了getValue();用于获取值

Set<Map.Entry<String,Double>>entries=map.entrySet();
//这时就会将每个键值对封装为每一个Entry对象。

for (Map.Entry<String,Double>  entry: entries) {
    String key=entry.getKey();
    double values= entry.getValue();
    System.out.println(key+"======》"+values);

}

方法三:使用Lambda方式进行遍历

package Map;

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

public class test2 {
    public static void main(String[] args) {
        Map<String,Double> map=new HashMap<>();
        map.put("傻逼一号",1.1);
        map.put("傻逼二号",2.2);
        map.put("傻逼三号",3.3);
        map.put("傻逼四号",4.4);
        System.out.println(map);
        map.forEach((k,v) ->{
            System.out.println(k+"====>"+v);
        });
    }
}

可以看出,在实质上,是将第二种方法进行了封装,称为了接口。

再通过Lambda进行了简化得到的方式三

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值