gpt4 book ai didi

java - 如何从文本文件中填充 Map>? -难以动态命名每个列表

转载 作者:行者123 更新时间:2023-11-29 03:16:49 26 4
gpt4 key购买 nike

这是文本文件。 K:代表一个键,V:代表我要输入的列表中的值。 ie : Strawberry , Apricot 和 Peach 组成了 map 关键类 A 的列表。

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);
}
}

最佳答案

当您检测到新 key 时,创建一个新列表:

if (s.startsWith("K:"))  {
key = s;
values = new ArrayList<>();
}

如果您不这样做,每个键都将映射到相同 列表。您希望每个键都映射到它自己的列表。

关于java - 如何从文本文件中填充 Map<String, List<String>>? -难以动态命名每个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com