有 Java 编程相关的问题?

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

在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将改变 实现的一个方法是,我已经为map的第三个属性创建了一个列表,但我不希望这样做,请告知我如何在map中放置一个循环,其中前两个属性将保持不变

第三个键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) 个答案

  1. # 1 楼答案

    不完全确定你想做什么。但是您可以使用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);