【发布时间】:2013-12-03 13:33:29
【问题描述】:
我有一个如下格式的文本文件
module1.q1=a1
module1.q2=a2
module2.q1=a1
module2.q5=a6
..
..
我有一个类 objectsHmp,它有两个字符串变量来存储问题(q1、q2、q3、...)和答案(a1、a2、a3、..)。我想要做的是保持模块ID作为键,我想用值作为对象的arraylist(objectsHmp)填充一个hashmap。反过来,我将键存储在字符串的数组列表中。
在下面的代码sn-p中,
*l_ext_keys* 是一个存储键的字符串数组列表,
*l_extract* 是 HashMap>,
*l_temp_array* 是对象 objectsHmp 的数组列表,
while((line=br.readLine()) != null)
{
String[] ss = new String[2];
ss = line.split("=");
String tss = ss[0];
String[] kss = tss.split("\\.");
objectsHmp temp = new objectsHmp(kss[1],ss[1]);
if(!prev.equals(kss[0]))
{
l_ext_keys.add(prev);
l_extract.put(prev,l_temp_array);
l_temp_array.clear();
}
l_temp_array.add(temp);
prev = kss[0];
}
l_extract.put(prev,l_temp_array);
l_ext_keys.add(prev);
l_temp_array.clear();
问题
Hashmap 正在填充,但它没有 l_ext_keys 中存在的某些键的值。我尝试打印arraylist和hasmap的长度,但它有很大的不同(arraylist的键值比hashmap多)。
造成这种差异的一个可能原因是某些模块重复了。 我会覆盖任何功能
问题 hashmap 无法获取列表中存在的键的值的可能性有哪些?还是我在这里犯了大错?
【问题讨论】:
-
还有未解决的问题吗?因为你还没有接受任何答案。如果还有问题,请随时提问!
-
@Ben,我通过更改整个逻辑来修复它。我怀疑模块名称中有一些重复。