我需要一些提示:
我可以说一个清单或年份序列
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 (%)。