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

摘要:
1.1  重点1.2  代码编程1.1  重点枚举类的使用(SkuCategoryEnum);JSONtoString方法的使用(测试类);两种不同list的使用方式(商品服务类);list的add方法1.2  代码编程需求:程序员双11添加了很多宝贝到购物车,程序员女盆友开始筛选出所有的电子类型的产品商品实体类:packagecom.imooc.zhangxiaoxi.lambda.cart;/

1.1  重点

1.2  代码编程


1.1  重点

枚举类的使用(SkuCategoryEnum);

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

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

list的add方法

1.2  代码编程

需求:

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

商品实体类:

packagecom.imooc.zhangxiaoxi.lambda.cart;

/*** 商品类
 */
public classSku {
    private Integer skuId;      //商品编号
    private String skuName;     //商品名称
    private Double skuPrice;    //商品单价
    private Integer totalNum;   //商品个数
    private Double totalPrice;  //商品总价
    private Enum skuCategory;   //枚举类型 商品类型

    publicSku(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;
    }

    publicInteger getSkuId() {
        returnskuId;
    }

    publicString getSkuName() {
        returnskuName;
    }

    publicDouble getSkuPrice() {
        returnskuPrice;
    }

    publicInteger getTotalNum() {
        returntotalNum;
    }

    publicDouble getTotalPrice() {
        returntotalPrice;
    }

    publicEnum getSkuCategory() {
        returnskuCategory;
    }
}

商品服务类:

packagecom.imooc.zhangxiaoxi.lambda.cart;

importjava.util.ArrayList;
importjava.util.List;

public classCartService {

    /*** 匿名内部类,有内存泄漏的风险,不在生产项目中引用,只是为了后边引用出来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(){
        returnskuList;
    }

    /*** 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));
            }
        }
*/
        returnlElectronicsList;
    }

    

}

枚举类:

packagecom.imooc.zhangxiaoxi.lambda.cart;

/*** 枚举类的使用
 */
public enumSkuCategoryEnum {

    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;
    }
}

测试类:

packagecom.imooc.zhangxiaoxi.lambda.cart;

importcom.alibaba.fastjson.JSON;
importorg.junit.Test;

importjava.util.List;

public classVersionTestA {

    @Test
    /*** 筛选出电子类型产品
     */
    public voidgetElectronicsSkuList(){
        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

免责声明:文章转载自《高效 告别996,开启java高效编程之门 2-3实战:硬编码业务逻辑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SwiftUI 官方教程(五)日常小脚本——脚本实现硬盘的自动挂载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java生鲜电商平台-商品的spu和sku数据结构设计与架构

Java生鲜电商平台-商品的spu和sku数据结构设计与架构 1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护,这样我们就可以在不同的类目下自定义商品信息和分类的属性信息,我们的业务系统就可以存储不同门类的商品信息了 •SPU = Standard Product U...

easyui datagrid 自定义editor

1 $.extend($.fn.datagrid.defaults.editors, { 2 mycombogrid: { 3 init: function (container, options) { 4 var input = $('<input type="te...

mysql 树形数据,层级数据Managing Hierarchical Data in MySQL

原文:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/ 引言大多数用户都曾在数据库中处理过分层数据(hierarchical data),认为分层数据的管理不是关系数据库的目的。之所以这么认为,是因为关系数据库中的表没有层次关系,只是简单的平面化的列表;而分层数据具有父...

谈谈我对sku的理解(2)----数据库设计

接着说一下,我们设计这个商品sku发布功能时候的表设计一. 属性和属性值首先,我们定义了最最基础的信息表 属性表,和属性值表。比如 我现在需要一个16g的iphone, 那么16g就是一个属性值,它对应的属性就是内存,可以这么理解。在这里我们没有引入像淘宝京东先分品牌的概念,而是把所有的这些信息,当做是一种属性来处理。在表中可以看到,每个属性值需要关联属性...

Mysql大并发热点行更新的两个骚操作

要想db操作的性能足够高,巧妙的设计很重要,事务的操作范围要尽量的小。一般情况下我们都是使用某个orm框架来操作db,这一类框架多数的实现方式都是夸网络多次交互来开启事务上下文和执行sql操作,是个黑盒子,包括对 autocommit 设置的时机也会有一些差异,稍微不注意就会踩坑。 在大并发的情况下加上夸网络多次交互,就不可避免的由于网络延迟、丢包等原因导...