1
使用以下代码,我能够从表单中获取所有必要的信息,该信息是;拆分正则表达式的结果
n = 5
p = 0.5
lambda = 0.3
d = 1
n = 8
p = 0.1
d = 1
p = 0.3
我把所有这些信息放在一个HashMap中,但我实际需要的是6个hashmaps;这样
Hashmap 1
n = 5
p = 0.5
Hashmap 2
lambda = 0.3
Hashmap 3
d = 1
Hashmap 4
n = 8
p = 0.1
Hashmap 5
d = 1
Hashmap 6
p = 0.3
换句话说,总是当我正为关键字,下一个关键字和值也应存放在此HashMap,这一个关键词将永远是一个页。
我知道这是不是真的有可能分裂一个HashMap,但我无法找到任何其他方式
非常感谢
public static void main(String[] args) throws FileNotFoundException, IOException
{
File filename = new File("H:\\NetBeansProjects\\thesis2.0\\src\\thesis2\\pkg0\\txt-files\\formulier.txt");
try (BufferedReader in = new BufferedReader(new FileReader(filename)))
{
HashMap hm = new HashMap();
Pattern p = Pattern.compile("\\s+(\\w+)\\s+([0-9.]+)\\s*");
for (String line; (line = in.readLine()) != null;)
{
Matcher m = p.matcher(line);
if (m.matches())
{
String keyword = m.group(1);
String parameter = m.group(2);
hm.put(m.group(1),m.group(2));
System.out.println(m.group(1) + " = " + m.group(2));
}
}
}
}
感谢您的回答,我想知道这是否会工作,因为在列表中他们总是添加一个地图workingChild,这不会覆盖以前制作的Hashmap,也称为workingChild? – StudentX
@StudentX [Java始终按值传递](http://stackoverflow.com/a/40499/1542723),所以我们生成的HashMap将被放入列表中,然后我们可以重用参考'workingChild'而不会影响列表中的地图。 – Ferrybig