我需要一些提示:
我可以说一个清单或年份序列

int startYear = 2010;
int endYear = 2050;


我有一个用字母和数字作为年份代码的枚举。


我需要此代码来生成条形码,其中我需要将时间戳编码为3位数字/字母,因此我需要将年月日映射到代码位置。


我需要做的是将年份序列映射到代码列表,并将其映射到键(年份数字)和值(年份代码)的HashMap中,

但是很明显,代码列表的长度不如年份序列,因此我需要检查何时到达最后一个索引,如果是,我需要重新遍历代码列表,直到到达年份序列的末尾。

我需要实现的是:

year    code
2012     C
2013     D
.
.
2030     Y
2031     1
.
.
2039     9
2040     A


等等...

不幸的是,我无法找到一种方法来做到这一点,因为我对Java很陌生,所以如果有人可以给我一些建议,我将不胜感激。

最佳答案

只需使用%运算符即可计算代码索引

List years = ...
List codes = ...
for (int i = 0, yearsSize = years.size(), codesSize = codes.size(); i < yearsSize; i++) {
     map.put(years.get(i), codes.get(i % codesSize));
}


请参见Remainder Operator (%)

09-04 11:58
查看更多