当前位置: 首页 > news >正文

思途旅游网站建设系统bt蚂蚁

思途旅游网站建设系统,bt蚂蚁,在线制作图片加文字的软件,做饰品网站目录 方法作用实战案例 方法作用 equals():判断对象是否相等,比如判断是否能放入Set集合中 情况1:没有重写equals()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的equals()方法,那就是对象…

目录

    • 方法作用
    • 实战案例

方法作用

  • equals():判断对象是否相等,比如判断是否能放入Set集合中
    • 情况1:没有重写equals()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的equals()方法,那就是对象的引用地址
    • 情况2:重写equals()方法:用重写equals()方法进行判断两个对象是否相等
  • hashCode():决定对象存储位置,比如在Set集合中的存储位置
    - 没有重写hashCode()方法:由于所有类的默认基类都是Object类,所以默认使用Object类的hashCode()方法,那就该对象默认的hashcode
    - 重写hashCode()方法:用重写hashCode()方法来决定对象放置位置

实战案例

我目前在看开源项目tduck-platform,然后想了解一下问卷调查的周收集趋势是如何生成的,效果图如下:

在这里插入图片描述
其实可以想到需要在查询数据库的时候需要按照“年月日”方式进行聚合,但是这样只能获取到有数据的情况,但是你可以看到上面例如2023-05-30是0,这种情况肯定不存在聚合结果中的,所以我们需要对聚合结果进行填充0操作,最常想到的方式是遍历这几天,看一下这一天是否已经存在了,存在就不填充了,否则就填充,基本也是这个意思,但是判断就需要使用到if语句,不是特别优雅,我们看一个优雅的操作,代码如下:

备注:具体代码路径

// 获取当前日期
Date now = new Date();
// 获取本周开始时间
DateTime startTime = DateUtil.beginOfWeek(now);
// 获取本周结束时间
DateTime endTime = DateUtil.endOfWeek(now);
// 获取本周的统计数据,注意人家在sql语句中用到了WHERE create_time >= YEARWEEK(now())
1Set<SituationVO> reportSituations = formDashboardMapper.selectFormReportSituation(formKey);
// 将本周的天数情况罗列一下
2List<DateTime> dateTimes = DateUtil.rangeToList(startTime, endTime, DateField.DAY_OF_WEEK);
// 填充不存在的天数情况,这块是最优秀的,我们下面好好分析
3、dateTimes.forEach(time -> {reportSituations.add(new SituationVO(time.toString(DatePattern.NORM_DATE_PATTERN), 0));
});
// 按照创建时间进行升序排序
return CollectionUtil.sort(reportSituations, (o1, o2) -> DateUtil.parse(o1.getCreateTime(), DatePattern.NORM_DATE_PATTERN).isAfter(DateUtil.parse(o2.getCreateTime(), DatePattern.NORM_DATE_PATTERN)) ? 1 : -1);

上面提到的SituationVO就是本次讲解的重点,我们看一下该类内部信息,如下:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SituationVO {private String createTime;private Integer count;@Overridepublic boolean equals(Object o) {if (this == o) {return true;}if (o == null || getClass() != o.getClass()) {return false;}SituationVO situation = (SituationVO) o;return Objects.equal(createTime, situation.createTime);}@Overridepublic int hashCode() {return Objects.hashCode(createTime);}
}

可以看到equals()方法被重写了,通过createTime来判断两个SituationVO对象是否相等,就我们上面的例子来看,位置1已经生成了SituationVO对象的Set集合,位置2生成了本周的所有天数信息,位置3遍历本周的天气信息,然后往Set集合reportSituations中填充其他SituationVO对象,由于Set集合中元素不能重复,所以会判断SituationVO对象是否重复,由于我们重写了SituationVO类的equals()方法,所以createTime相同的SituationVO对象就不会在写入了,这就会完成填充0操作

http://www.mmbaike.com/news/22270.html

相关文章:

  • 19网站建设seo软件服务
  • 评级网站怎么做广告公司起名大全最新
  • 建立网站谁给你钱网络销售入门基本知识
  • 做网站的软件淘汰史手机上可以创建网站吗
  • 你自己做的网站怎么发布到网上永久免费自动建站
  • 学做网站关键词汇总
  • 云主机配置网站爱站网权重查询
  • 太原做企业网站百度网盘搜索引擎网站
  • 太原做网站价格优秀的品牌策划案例
  • sql网站模板网站建设公司哪家好
  • 预约网站如何自己做恢复原来的百度
  • 域名停靠网站 2015怎么制作网站教程
  • 公司想做个自己的网站怎么做怎么在百度上推广自己的店铺
  • 鹤壁网站建设兼职谷歌seo和百度seo区别
  • 个人网站建设法律规定网站开发的步骤
  • 万网域名安全锿江苏seo排名
  • 如何在vps上搭建网站上google必须翻墙吗
  • 做羞羞的事的网站网店营销策划方案ppt
  • 接网站制作学软件开发学费多少钱
  • 网站追踪如何做徐州网站建设
  • 建设摩托车官方网站企业建站系统
  • 网站弹窗广告怎么做百度推广代运营公司
  • 宁夏免费做网站上海有什么seo公司
  • 查询网站备案时间查询2020国内搜索引擎排行榜
  • 播放视频网站怎么做的seo推广专员
  • 企业网站建设需求文档北京搜索引擎推广服务
  • 做海外网站淘宝seo 优化软件
  • 手机网站建设的公司排名网络推广教程
  • 用iis做网站全网营销推广服务
  • 做网站推广前途今日国际新闻摘抄十条