Я использую файл, который состоит из:Добавление двух значений ключа в HashMap в Java
"word","wordtype","definition"
"Base","n.","The lower part of a robe or petticoat."
"Base","n.","An apron."
Выход следующим образом:
key: "base" value: ["word""wordtype""definition", "Base""n.""The lower part of a robe or petticoat.", "Base""n.""An apron."] key: "word" value: ["word""wordtype""definition", "Base""n.""The lower part of a robe or petticoat.", "Base""n.""An apron."]
Желаемый результат:
key: "base" value: [ "Base""n.""The lower part of a robe or petticoat.", "Base""n.""An apron."] key: "word" value: ["word""wordtype""definition"]
Может кто-то мне точку в правильном направлении?
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
TreeMap<String, List<String>> def = new TreeMap<String, List<String>>();
List<String> values = new ArrayList<String>();
try {
while ((line = br.readLine()) != null) {
String []parts =line.split(",");
String key = null;
for (int i = 0; i < parts.length; i++){
key = parts[0];
}
values.add(parts[0] + parts[1] + parts[2]);
def.put(key.toLowerCase(), values);
}
Для начала: 'key = parts [0]' не должен находиться в цикле; 'values' должна быть новой переменной, определенной внутри цикла while, и вы должны добавить каждую часть, которую вы хотите добавить в список значений по одному, а не объединять их вместе с +. –
Вы не можете использовать карту для этого. Один «ключ» должен соответствовать одному (или нет) «значению». Если вы хотите _similar_ функциональность; вы можете использовать «Список>». –
user2478398