有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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) 个答案

  1. # 1 楼答案

    如果要保持前两个键相同,并且只使用最新值更新键“FILENAMES”,则只需执行rmap.put(FILENAMES,"latestFileName");即可保留上次更新的值,但如果要保留所有文件名,则将值设置为字符串列表,而不只是字符串,然后在获得新文件时添加文件名