在java中,更改映射相对于特定键的值的字典
我已经创建了一个映射,它最终会将一条消息放到队列中,即消息放到队列中现在是映射类型,但现在映射包含以下键值对
Map(<String , String >) rmap = new HashMap(<String , String >);
rmap.put(ID, 750);
rmap.put(FILELOC,"C:\\ta\\");
rmap.put(FILENAMES,"wer.xls");
以上地图的问题是,它只适用于一个文件,而wer则适用于一个文件。xls现在有4个不同的文件,如下所示
abc.xls
ert.xlsx
gftr.xls
ewrt.xlsx
现在我想在map上面调用一个循环,其中前两个键值每次都保持不变,即ID,FILELOC对上述4个文件都保持不变,但最后一个键值FILENAMES会随着每个seprate excel文件而改变,实现的一个方法是,我已经为map的第三个属性创建了一个列表,但我不希望这样做,请建议我如何在map中设置一个循环,其中前两个属性将保持不变
第三个密钥FILENAMES值将被更改如下
rmap.put(FILENAMES,"abc.xls");
rmap.put(FILENAMES,"ert.xlsx");
rmap.put(FILENAMES,"gftr.xls");
rmap.put(FILENAMES,"ewrt.xlsx");
实现这一点的另一种方法是创建4个不同的地图
Map(<String , String >) rmap1 = new HashMap(<String , String >);
rmap1.put(ID, 750);
rmap1.put(FILELOC,"C:\\ta\\");
rmap1.put(FILENAMES,"abc.xls");
Map(<String , String >) rmap2 = new HashMap(<String , String >);
rmap2.put(ID, 750);
rmap2.put(FILELOC,"C:\\ta\\");
rmap2.put(FILENAMES,"ert.xlsx");
Map(<String , String >) rmap3 = new HashMap(<String , String >);
rmap3.put(ID, 750);
rmap3.put(FILELOC,"C:\\ta\\");
rmap3.put(FILENAMES,"gftr.xls");
Map(<String , String >) rmap4 = new HashMap(<String , String >);
rmap4.put(ID, 750);
rmap4.put(FILELOC,"C:\\ta\\");
rmap4.put(FILENAMES,"ewrt.xlsx");
有没有其他方法可以让我在循环中适应这一点,并且第三个键应该被动态更改
# 1 楼答案
如果要保持前两个键相同,并且只使用最新值更新键“FILENAMES”,则只需执行
rmap.put(FILENAMES,"latestFileName");
即可保留上次更新的值,但如果要保留所有文件名,则将值设置为字符串列表,而不只是字符串,然后在获得新文件时添加文件名