我的外部映射包含作为键的字符串和作为 an 的值,ArrayList
而后者又将键和值的内部映射作为字符串保存。当我尝试将数据放入列表和映射并遍历外部映射时,它工作正常。但是,当我尝试检索给定键的特定列表值时,它会返回null
.
我究竟做错了什么?我的外部地图结构是:
Map<String,List<HashMap<String,String>>>
Myclass{
private static void method1{
//Other code reading my file
while (((lineReader = bReader.readLine()) != null)
&& (lineReader.length() > 0)) {
innerMap = new HashMap<String, String>();
textData = lineReader.split("\t");
firstColm = textData[0];
innerMap .put("secondColm", textData[1]);
innerMap .put("thirdColm", textData[2]);
if (outerMap.containsKey(firstColm)) {
MyList = (List) outerMap.get(firstColm);
} else {
MyList = new ArrayList<Map<String, String>>();
outerMap.put(firstColm,MyList );
}
MyList.add(innerMap );
}
}
public static List<Map<String, String>> getDetails(String key) {
return outerMap.get(key);
}
}
Myclass2
{
public static void main(String args[]) {
List<Map<String, String>> Mylist = Myclass.getDetails("1");
System.out.println("User Data :"+ Mylist);
} }
我执行此操作以读取文本文件并将其存储在 中innermap
,将其分组为列表并将列表用作值以将其与另一个键一起存储。
getDetails("1") 1 -> specifies the key of the outer map.