這是文本文件。 K:表示一個鍵,V:表示我想要輸入的列表中的值。即:草莓,杏和桃組成了地圖重點A級的清單。如何從文本文件填充地圖<String,列表<String>>? -Difficulites動態命名每個列表
K: Class A//
V: Strawberry//
V: Apricot//
V: Peach//
K: Class B//
V: Chocolate//
K: Class C//
V: Creme de menthe//
V: Irish coffee//
這裏的程序正確分配密鑰,但增加了每個值在文件中的列表,而不是隻是我想要的人。
//FillHM.java
import java.io.*;
import java.util.Scanner;
import java.util.*;
public class FillHM {
public static void main (String[] args) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
Scanner sc1 = null;
try {
sc1 = new Scanner(new File("/home/craig/Desktop/mytext.txt"));
}catch (FileNotFoundException e) {e.printStackTrace();}
List<String>values = new ArrayList<>();
String s = " ";
String key = " ";
while (sc1.hasNextLine()) {
Scanner sc2 = new Scanner(sc1.nextLine());
sc2.useDelimiter("//");
while(sc2.hasNext()) {
s = sc2.next();
if (s.startsWith("K:")) {
key = s;
}
if (s.startsWith("V:")) {
values.add(s);
}
map.put(key, values);
} //end while
} //end while
System.out.println(map);
}
}
只需在'while'循環的頂部調用'values.clear()'。 – sje397 2014-09-27 07:11:03
他需要創建一個新列表,而不是清除現有列表。 – TechTrip 2014-09-27 07:19:08