在java中创建一个映射,其中第三个键值将在每次迭代中更改

时间:2015-08-01 05:59:08

标签: java

我已经创建了一个地图,最终会将消息丢弃到队列,即队列中的消息丢弃现在是地图类型,但现在地图包含以下键值对

Map(<String , String >) rmap = new HashMap(<String , String >);
    rmap.put(ID, 750);
    rmap.put(FILELOC,"C:\\ta\\");
    rmap.put(FILENAMES,"wer.xls");

现在上面地图的问题在于它是一个单一的文件仪式,现在可以说下面显示的10个不同的文件

abc.xls
ert.xlsx
gftr.xls
ewrt.xlsx
fdre.xls
saww.xls
hyt.xls
qwer.xls
erty.xls
uhc.xls

现在我希望在map上面调用一个循环,其中前两个键值将保持相同的ID,FILELOC对于所有10个以上的文件将保持相同,但最后一个键FILENAMES值将会更改 一种方法是我已经为地图的第三个属性创建了一个列表,但我不希望这样做,请告诉我如何在地图中放置一个循环,其中前两个属性将保持相同

并且第三个键FILENAMES值会改变这样的东西

rmap.put(FILENAMES,"abc.xls");
rmap.put(FILENAMES,"ert.xlsx");
rmap.put(FILENAMES,"gftr.xls");
rmap.put(FILENAMES,"ewrt.xlsx");
rmap.put(FILENAMES,"fdre.xls");
rmap.put(FILENAMES,"saww.xls");
rmap.put(FILENAMES,"hyt.xls");
rmap.put(FILENAMES,"qwer.xls");
rmap.put(FILENAMES,"erty.xls");
rmap.put(FILENAMES,"uhc.xls");

1 个答案:

答案 0 :(得分:0)

不完全确定你想做什么。但您可以使用Guava's Multimap,它允许您将键与多个值相关联

import com.google.common.collect.Multimap;
import com.google.common.collect.ArrayListMultimap;

Multimap<String, String> rmap = ArrayListMultimap.create();
rmap.put(ID, String.valueOf(750)) ;
rmap.put(FILELOC,"C:\\ta\\");
rmap.put(FILENAMES,"wer.xls");
//....
rmap.put(FILENAMES,"uhc.xls");
// loop FILENAMES
for (String filename : rmap.get(FILENAMES))
    process(filename);