Java 无法使用map.get()检索多行值

Java 无法使用map.get()检索多行值,java,dictionary,Java,Dictionary,我有一个需要处理的多行值。我正在使用map.get方法检索该值,但它似乎只获取最后一行值 这是我的密码: map = new LinkedHashMap(); updateMap("BUG", parser, map, bugRec); map.put(nextBuildIdTagName, nextBuildId); // putting the new value in String value = (String)map.get(nextBuildIdTagName); // This

我有一个需要处理的多行值。我正在使用map.get方法检索该值,但它似乎只获取最后一行值

这是我的密码:

map = new LinkedHashMap(); 
updateMap("BUG", parser, map, bugRec);
map.put(nextBuildIdTagName, nextBuildId); // putting the new value in
String value = (String)map.get(nextBuildIdTagName); // This is where it is not working

nextBuildIdTagName已经有一个值,新值作为新行插入。我需要能够检索现有值以及新值。

因此,据我所知,您希望在地图中的单个键下存储多个值。在不使用任何外部库的情况下,最简单的方法是创建列表映射,如下所示:

Map<String, List<String>> map = new HashMap<>();
if(!map.containsKey(nextBuildIdTagName)) {
    map.put(nextBuildIdTagName, new ArrayList<>());
}
map.get(nextBuildIdTagName).add(nextBuildId);

LinkedHashMap是其子类的javadoc for HashMap中明确指出:如果映射之前包含键的映射,则替换旧值。要在同一个键的行中存储多个值,需要执行以下操作:

Map<String, List<String>> map = new Linked HashMap<>();
并添加到列表中,该列表是所需行的映射值。注意:这里我假设您的键是字符串,根据需要更改其类型


来源:

updateMap做什么?另一方面,您可能希望阅读泛型,并使map成为一个map,其中T是nextBuildIdTagName的类型,因此在检索值时不必强制转换为字符串。感谢您的帮助:
Map<String, List<String>> map = new Linked HashMap<>();