Map集合的妙用,很简单哦

package Day5.Assemble_Package.Map_Package;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;

/**
 * @Author AChun
 * @Date 2021/12/23 22:04
 * @Version 1.8
 */
/**          键    值
 * Map集合{ (key1,value1),(key2,value2),... }
 *    如:   { ("手机",5),("Java",4),... }
 *         { ("价格",5.0),... }
 * */
public class MapAPL_Demo02 {
    public static void main(String[] args) {
        //创建一个map对象的Map集合
        Map<String,Double> map=new HashMap<>();//
        //给集合添加食材
        map.put("五花肉",15.0);
        map.put("和牛卷",36.5);
        map.put("肥羊卷",38.0);
        map.put("毛肚",32.5);
        map.put("青菜",2.5);
        map.put("娃娃菜",5.0);
        map.put("鸡蛋",1.0);
        map.put("百叶结",1.5);
        System.out.println("火锅食材:"+map);
        map.remove("娃娃菜");//不喜欢吃,去掉这个食材
        Map<String,Double> map1=new HashMap<>();//再增加一个小菜单
        map1.put("牛肚",28.0);
        map1.put("虾滑",34.5);
        map1.put("茼蒿",3.8);
        map.putAll(map1);//将后点的小菜单给加进火锅里里面
        System.out.println("火锅新的食材:"+map);
        //forEach遍历方法
        //先将Map集合类型的map转换成Set集合类型,再遍历
        //换个锅底,来个牛油红糖锅底,好涮菜
        //Idea编程,手打需要转换的集合名.entrySet()然后ctr+alt+回车自动补全代码,将集合转变成Set型
        System.out.println("开始涮菜!涮菜!");
        boolean flag=true;
        System.out.println("有现切牛肉这道菜了吗?");
        if(flag==map.containsKey("现切牛肉")){//map.containsKsy(参数),判断map集合是否有改参数的键,有的话返回true,没有就false
            System.out.println("有这道菜了");
        }else {
            System.out.println("还没有这道菜,加上吧。");
            map.put("现切牛肉",38.0);
        }
        Set<Map.Entry<String, Double>> entries = map.entrySet();
        for (Map.Entry<String, Double> entry : entries) {//涮菜啦!entries.for回车!
            String mapkey=entry.getKey();//将创建的循环对象entry便利的键赋值给mapkey这个新建对象
            Double mapvalue=entry.getValue();//你涮菜的时候心里默默记着这道菜多少钱多少钱
            System.out.println("菜名:"+mapkey+"\t"+"价格:"+mapvalue);
        }
        System.out.println("To amount later...");
        System.out.println();
        System.out.println("算一下多少钱吧");
        Collection<Double> price=map.values();//创建一个Collection集合对象price,将map集合的值放进去
        double sum=0;
        for (Double aDouble : price) {
            sum+=aDouble;
        }
        System.out.println("总共:"+sum);
        //map.clear()也可以将Map集合里的数据清空
        System.out.println("来来,咱们算算今天吃了什么");
//        //Labdom写法简化前,map.forEach(new BiConsumer....)回车,自动生成,
//        map.forEach(new BiConsumer<String, Double>() {
//            @Override
//            public void accept(String key, Double value) {
//                System.out.println(key+":"+value);
//            }
//        });
        //简化后
        map.forEach((k,v) -> {
            System.out.print(k+":"+v+"");
        });
        System.out.println();
        entries.clear();//吃完了,火锅里面没了
        System.out.println("吃完了:"+entries+",钱也付了,走吧!");
    }
}

运行结果:

​​​​​​​

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值