【代码块】1、借助LinkedHashMap解决重复代码问题

博客探讨了如何借助Java中的LinkedHashMap数据结构解决代码重复问题。在需求描述中,提出了一个定时调用任务的场景,初期每10秒调用,之后变为每分钟调用。文章对比了两种解决方案:简单的双重循环和使用LinkedHashMap。方案二通过将执行次数作为key,对应休眠时间作为value,实现了代码的复用和拓展性。实际效果验证了这种方法的有效性。
摘要由CSDN通过智能技术生成

需求描述

  • 前5分钟,每10s 调用一次,后5分钟,每分钟调用一次(需求可继续拓展)

需求分析

  • 方案一:采用两个for循环就能实现
    • 优点:实现简单
    • 缺点:代码容易出现冗余,后期不方便拓展
  • 方案二:借助数据结构LinkedHashMap来存储,key是执行次数,value是该次数对应的休眠时间;前30次是10s,从第30次到第35次是1分钟;
    • 优点:复用代码,代码简洁,后期方便拓展

代码实现

import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;

public class QueryFrequency {
   

    /**
     * key是执行次数,value是该次数对应的休眠时间
     * 前30次是休眠10s,从第30次到第35次是休眠1分钟
     */
    private final static Map<Integer, Long> FREQUENCY_MAP = Collections.unmodifiableMap(
            new LinkedHashMap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值