zoukankan      html  css  js  c++  java
  • for循环使用后contains方法失去效果

    重写了cartInfo中的equals和hashcode方法

    第一种方式:
    包含是可以的
    List<CartInfo> cookie = new ArrayList<CartInfo>();
    List<CartInfo> redis = new ArrayList<CartInfo>();
    //缓存中实体类
    redis.add(new CartInfo(1L,5,new BigDecimal(0.5)));
    redis.add(new CartInfo(2L,5,new BigDecimal(0.5)));
    //cookie的实体类
    cookie.add(new CartInfo(1L,5,new BigDecimal(1.5)));
    cookie.add(new CartInfo(3L,5,new BigDecimal(1.5)));
    CartInfo cookieCartInfo = new CartInfo(1L,5,new BigDecimal(0.5));
    //判断redis中是否包含单个cookie实体类
    if (redis.contains(cookieCartInfo)) {
    System.out.println(true);
    }

    第二种方式:
    包含是不可以的
    List<CartInfo> cookie = new ArrayList<CartInfo>();
    List<CartInfo> redis = new ArrayList<CartInfo>();
    //缓存中实体类
    redis.add(new CartInfo(1L,5,new BigDecimal(0.5)));
    redis.add(new CartInfo(2L,5,new BigDecimal(0.5)));
    //cookie的实体类
    cookie.add(new CartInfo(1L,5,new BigDecimal(1.5)));
    cookie.add(new CartInfo(3L,5,new BigDecimal(1.5)));

    getCartList(redis,cookie);
     
    public List<CartInfo> getCartList(List<CartInfo> redis,List<CartInfo> cookie){
    for (CartInfo info : cookie) {
    if(redis.contains(info)){
    for (CartInfo cartInfo : redis) {//遍历缓存
    if(cartInfo.getProductId().equals(info.getProductId())){//判断cookie的产品id和缓存中的产品id是否相等
    //合并缓存和cookie的数据
    cartInfo.setProductNumber(cartInfo.getProductNumber()+info.getProductNumber());
    cartInfo.setProductPrice(cartInfo.getProductPrice().add(info.getProductPrice()));
    }
    }
    }else{
    redis.add(info);
    }

    }
    return redis;
    }
    
    
    redis.contains(info)明明包含了info但是实际判断是不包含

    区别在于后者进行遍历了

    被逼无奈只能添加自定义方法
    代替contains
    public boolean Acontains(List<CartInfo> redis,CartInfo info){
    boolean flag = false;
    for (CartInfo redi : redis) {
    if(redi.getProductId().equals(info.getProductId())){
    return true;
    }
    }
    return flag;
    }
     
     
     
  • 相关阅读:
    实现多页签切换效果
    CSS样式display:none和visibility:hidden的区别
    canvas主要属性和方法
    Web前端的35个jQuery小技巧
    div+css3实现的小丸子和爷爷
    Jquery实现手机上下滑屏滑动的特效代码
    使用phantomjs生成网站快照
    VSCode配置Go language tools
    TypeScript中慎用forEach
    win8开发之数据绑定控件Gridview以分组及不同项模板的形式呈现数据
  • 原文地址:https://www.cnblogs.com/javawxid/p/10895818.html
Copyright © 2011-2022 走看看