Java将两个不同大小的List合并为HashMap

标签 java arraylist hashmap

我需要一些提示: 我可以说一个列表或一系列年份

int startYear = 2010;
int endYear = 2050;

我有一个枚举,其中字母和数字作为年份代码。

I need this for Barcode generation where i have a timestamp that need to be coded into 3 digits/letters, so i need to map year month and day to a code position.

我需要做的是将年份序列映射到代码列表到键(年份数字)和值(年份代码)的 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 (%) .

关于Java将两个不同大小的List合并为HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38893014/

相关文章:

java - 如何创建一个 ListView ,以便单击每个列表项将打开不同的 Activity ?

java - 将基本数据源与连接池数据源混合在一起 : when to call close()?

java - onBindViewHolder(RecyclerView.ViewHolderholder, intposition) - 无法访问holder的 'fun' - Kotlin到Java

java - 使用泛型搜索数组中的最大元素

javascript - 按不同的 id 对项目数组进行分组

java - 从文本文件读取数组中的图像和字符串

java - 有没有办法将一个 ArrayList 与另一个 ArrayList 建立一对多关系?

基于 Scala 磁盘的 Map

java - 获取 HashMap 条目的最后更新日期

java - 字符串数组值和 HashMap