package com.example.demo.jdk18;
public class Sku {
//id
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 void setSkuId(Integer skuId) {
this.skuId = skuId;
}
public String getSkuName() {
return skuName;
}
public void setSkuName(String skuName) {
this.skuName = skuName;
}
public Double getSkuPrice() {
return skuPrice;
}
public void setSkuPrice(Double skuPrice) {
this.skuPrice = skuPrice;
}
public Integer getTotalNum() {
return totalNum;
}
public void setTotalNum(Integer totalNum) {
this.totalNum = totalNum;
}
public Double getTotalPrice() {
return totalPrice;
}
public void setTotalPrice(Double totalPrice) {
this.totalPrice = totalPrice;
}
public Enum getSkuCategory() {
return skuCategory;
}
public void setSkuCategory(Enum skuCategory) {
this.skuCategory = skuCategory;
}
}
package com.example.demo.jdk18;
import com.example.demo.designmode.prototype.Book;
/**
* 商品类型枚举
*/
public enum SkuCategoryEnum {
CLOTHING(10,"衣服类"),
ELECT(20,"电子类"),
SPORT(30,"运动类"),
BOOKS(40,"图书类");
private Integer code;
private String name;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
SkuCategoryEnum(Integer code, String name) {
this.code = code;
this.name = name;
}}
package com.example.demo.jdk18;
import java.util.ArrayList;
import java.util.List;
public class CartService {
private static List<Sku> cartSkuList = new ArrayList<Sku>(){
{
add(new Sku(1000,"洗衣机",2345.2,1,2345.2,SkuCategoryEnum.ELECT));
add(new Sku(1001,"电冰箱",3545.44,1,3545.44,SkuCategoryEnum.ELECT));
add(new Sku(1002,"空调",3745.44,1,3745.44,SkuCategoryEnum.ELECT));
add(new Sku(1003,"外星人电脑",13745.44,1,13745.44,SkuCategoryEnum.ELECT));
add(new Sku(1004,"奇特的一生",45.44,1,45.44,SkuCategoryEnum.BOOKS));
add(new Sku(1005,"跟我学炒股",55.14,1,55.14,SkuCategoryEnum.BOOKS));
add(new Sku(1005,"JAVA编程思想",78.14,1,78.14,SkuCategoryEnum.BOOKS));
}
};
public static List<Sku> getCartSkuList(){
return cartSkuList;
}
}
实战例子:
package com.example.demo.jdk18;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.connector.Request;
import javax.servlet.http.HttpServletRequest;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
public class App {
static void save(){
}
public static void main(String[] args) {
AtomicReference<Double> money = new AtomicReference<>(Double.valueOf(0.0));
List<String> skuNameList =CartService.getCartSkuList()
.stream()
//打印信息
.peek(sku -> System.out.println(sku))
//过滤掉图书
.filter(sku -> !SkuCategoryEnum.BOOKS.equals(sku.getSkuCategory()))
//排序从大到小
.sorted(Comparator.comparing(Sku::getTotalPrice).reversed())
//取前两个
.limit(2)
//对金额进行累加
.peek(sku -> money.set(money.get() + sku.getTotalPrice()))
//获取对象中的某一字段
.map(sku -> sku.getSkuName())
//收集用list接收
.collect(Collectors.toList());
System.out.println(skuNameList.toString());
System.out.println("money="+money.get());
}
}