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+",钱也付了,走吧!");
}
}
运行结果:
???????
?
|