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

思途旅游网站建设系统宣城网站seo

思途旅游网站建设系统,宣城网站seo,网页制作实践 做网站,网站SEO容易做吗目录 方法作用实战案例 方法作用 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.hrbkazy.com/news/38645.html

相关文章:

  • 企业网站的建设的功能定位株洲seo优化首选
  • c语言除了做网站还能干什么交换友情链接的条件
  • 制作一个简单网站代发百度首页排名
  • 杭州做网站哪个公司好百度手机点击排名工具
  • 青州做网站的网络公司营销策划公司排行榜
  • 开发电商网站多少钱站群seo技巧
  • 佛山新网站制作平台杭州seo论坛
  • 无锡做网站选优易信成都最新消息今天
  • 西安哪家公司做网站百度榜
  • 0基础学网站建设长沙疫情最新消息今天封城了
  • 企业seo案例seo搜索优化推广
  • 2018年网站建设网页设计html代码大全
  • 做网站賺钱4a广告公司
  • 会议网站湖南网站营销seo方案
  • 做图素材网站开哪个vip好网络营销团队
  • seo课培训优化设计电子版
  • 网站建设 完成推广平台网站有哪些
  • 昆明网站建设优化技术温州seo服务
  • 做网站 指导哈尔滨seo网站管理
  • 作品展示网站 源码哪个网站百度收录快
  • axcure做网站ui今日百度小说排行榜
  • 网站焦点图素材深圳英文站seo
  • 怎样做音视频宣传网站我赢网seo优化网站
  • 微网站开发北京百度明星人气榜
  • 能用二级域名做网站吗免费建站平台哪个好
  • 深圳购物网站建seo优化教程自学网
  • 做图的网站百度知道提问
  • 濮阳建网站的郑州优化公司有哪些
  • 如何做网站外链爱站网域名查询
  • 专业提供网站建设服务的企业无锡网络公司