• 高效 告别996,开启java高效编程之门 2-3实战:硬编码业务逻辑


    1.1  重点

    1.2  代码编程

     

    1.1  重点

    枚举类的使用(SkuCategoryEnum);

    JSONtoString方法的使用(测试类);

    两种不同list的使用方式(商品服务类);

    list的add方法

    1.2  代码编程

    需求:

    程序员双11添加了很多宝贝到购物车,程序员女盆友开始筛选出所有的电子类型的产品

    商品实体类:

    package com.imooc.zhangxiaoxi.lambda.cart;
    
    /**
     * 商品类
     */
    public class Sku {
        private Integer skuId;      //商品编号
        private String skuName;     //商品名称
        private Double skuPrice;    //商品单价
        private Integer totalNum;   //商品个数
        private Double totalPrice;  //商品总价
        private Enum skuCategory;   //枚举类型 商品类型
    
        public Sku(Integer skuId, String skuName, Double skuPrice, Integer totalNum, Double totalPrice, Enum skuCategory) {
            this.skuId = skuId;
            this.skuName = skuName;
            this.skuPrice = skuPrice;
            this.totalNum = totalNum;
            this.totalPrice = totalPrice;
            this.skuCategory = skuCategory;
        }
    
        public Integer getSkuId() {
            return skuId;
        }
    
        public String getSkuName() {
            return skuName;
        }
    
        public Double getSkuPrice() {
            return skuPrice;
        }
    
        public Integer getTotalNum() {
            return totalNum;
        }
    
        public Double getTotalPrice() {
            return totalPrice;
        }
    
        public Enum getSkuCategory() {
            return skuCategory;
        }
    }

    商品服务类:

    package com.imooc.zhangxiaoxi.lambda.cart;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class CartService {
    
        /**
         * 匿名内部类,有内存泄漏的风险,不在生产项目中引用,只是为了后边引用出来lambda表达式
         */
        private static List<Sku> skuList = new ArrayList<Sku>(){
            {
                add(new Sku(2020001,"无人机",999.00,1,999.00,SkuCategoryEnum.ELECTRONICS));
                add(new Sku(2020002,"T-shirt",50.00,2,100.00,SkuCategoryEnum.CLOTHING));
                add(new Sku(2020003,"人生的枷锁",30.00,1,30.00,SkuCategoryEnum.BOOKS));
                add(new Sku(2020004,"老人与海",20.00,1,20.00,SkuCategoryEnum.BOOKS));
                add(new Sku(2020005,"剑指高效编程",288.00,1,288.00,SkuCategoryEnum.BOOKS));
                add(new Sku(2020006,"大头皮鞋",300.00,1,300.00,SkuCategoryEnum.CLOTHING));
                add(new Sku(2020007,"杠铃",2000.00,1,2000.00,SkuCategoryEnum.SPROTS));
                add(new Sku(2020008,"ThinkPad",5000.00,1,5000.00,SkuCategoryEnum.ELECTRONICS));
            }
    
        };
    
        public static List<Sku> getSkuList(){
            return skuList;
        }
    
        /**
         * versionTestA
         * 找出购物车中所有电子产品
         *
         * 注意for 循环
         *  for (Sku sku: skuList) 的使用
         * @return
         */
        public static List<Sku> getElectronicsSkuList(List<Sku> skuList){
            List<Sku> lElectronicsList = new ArrayList<Sku>();
            for (Sku sku: skuList){
               if (sku.getSkuCategory().equals(SkuCategoryEnum.ELECTRONICS)){
                    lElectronicsList.add(sku);
                }
            }
    /*
            for (int i=0;i<skuList.size();i++){
                if (skuList.get(i).getSkuCategory().equals(SkuCategoryEnum.ELECTRONICS)){
                    lElectronicsList.add(skuList.get(i));
                }
            }
    */
            return lElectronicsList;
        }
    
        
    
    
    }

    枚举类:

    package com.imooc.zhangxiaoxi.lambda.cart;
    
    /**
     * 枚举类的使用
     */
    public enum SkuCategoryEnum {
    
        CLOTHING(10,"服装类"),
        ELECTRONICS(20,"电子类"),
        SPROTS(30,"运动类"),
        BOOKS(40,"图书类");
    
        private Integer code;//码值
        private String name;//名称
    
        SkuCategoryEnum(Integer code, String name) {
            this.code = code;
            this.name = name;
        }
    }

    测试类:

    package com.imooc.zhangxiaoxi.lambda.cart;
    
    import com.alibaba.fastjson.JSON;
    import org.junit.Test;
    
    import java.util.List;
    
    public class VersionTestA {
    
        @Test
        /**
         * 筛选出电子类型产品
         */
        public void getElectronicsSkuList(){
            List<Sku> skuList = CartService.getSkuList();
            List<Sku> electronicList = CartService.getElectronicsSkuList(skuList);
            System.out.println("electronicList=="+ JSON.toJSONString(electronicList,true));
        }
    }

    打印日志:

    electronicList==[
        {
            "skuCategory":"ELECTRONICS",
            "skuId":2020001,
            "skuName":"无人机",
            "skuPrice":999.0,
            "totalNum":1,
            "totalPrice":999.0
        },
        {
            "skuCategory":"ELECTRONICS",
            "skuId":2020008,
            "skuName":"ThinkPad",
            "skuPrice":5000.0,
            "totalNum":1,
            "totalPrice":5000.0
        }
    ]
    
    Process finished with exit code 0
  • 相关阅读:
    7.25
    7.24
    7.23
    7.22
    输入语句/条件运算符
    flowLayoutPanel1设置内容随着鼠标滚动而滚动
    dataGridView读取xml文件
    读文本内容 写入文本内容 创建复制文本
    cmd.ExecuteScalar 和配置连接设置
    $.ajax async同步加载
  • 原文地址:https://www.cnblogs.com/1446358788-qq/p/12602751.html
Copyright © 2020-2023  润新知