加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用Java中的循环创建变量名称?

发布时间:2020-12-14 05:51:06 所属栏目:Java 来源:网络整理
导读:第一次海报,长时间读者所以对我温柔:) 请参阅以下代码,该代码用于生成财务年度中每月开始和结束的时间戳. int year = 2010;// Financial year runs from Sept-Aug so earlyMonths are those where year = FY-1 and lateMonths are those where year = FYint[
第一次海报,长时间读者所以对我温柔:)

请参阅以下代码,该代码用于生成财务年度中每月开始和结束的时间戳.

int year = 2010;
// Financial year runs from Sept-Aug so earlyMonths are those where year = FY-1 and lateMonths are those where year = FY
int[] earlyMonths = {8,9,10,11}; // Sept to Dec
int earlyYear = year -1;
for (int i : earlyMonths) {
    month = i;
    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(earlyYear,month,1,0);
    Long start = cal.getTimeInMillis();
    cal.clear();
    cal.set(earlyYear,1);
    lastDayofMonth = cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);
    cal.set(earlyYear,lastDayofMonth,23,59,59);
    Long end = cal.getTimeInMillis();
}
int[] lateMonths = {0,2,3,4,5,6,7}; // Jan to Aug
for (int i : lateMonths) {
    month = i;
    Calendar cal = Calendar.getInstance();
    cal.clear();
    cal.set(year,0);
    Long start = cal.getTimeInMillis();
    cal.clear();
    cal.set(year,1);
    lastDayofMonth = cal.getActualMaximum(GregorianCalendar.DAY_OF_MONTH);
    cal.set(year,59);
    Long end = cal.getTimeInMillis();
}

到目前为止这么好,但是为了使用这些结果,我需要将这些时间戳输出到以月命名的变量(稍后在代码中用于预备语句.例如SeptStart = sometimestamp,SeptEnd = some timestamp等等.

我不知道是否可以根据每个循环的结果声明新变量.有任何想法吗?

解决方法

为什么不使用 Map

毕竟你想拥有一个“容器”来获取某个值,并用指定的名称对它进行寻址.

因此,只需将“变量名称”作为您的密钥,将“变量值”作为您的,即ehm值.

编辑,因为你想要一个Sorted集合:

首先,转到Treemap而不是地图.

另外,要保留字典顺序,请将月份数字填充零标准化到左侧,并使用“开始”和“结束”作为分隔符

所以你将拥有:

01_begin
01_end
02_begin
...
10_begin
10_end
...

当您访问树形图时,将以正确的顺序打印.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读