gpt4 book ai didi

java文件读取并将其存储在 HashMap 中

转载 作者:行者123 更新时间:2023-11-30 11:04:27 28 4
gpt4 key购买 nike

我试图读取一个 .txt 文件并想将其存储在 hasmap(String, List) 中。但是当它试图存储值时,这些值被最后一个值覆盖了。

    String filePath = "D:/liwc_new.txt";
HashMap<String,List<String>> map = new HashMap<String,List<String>>();

String line;

BufferedReader reader = new BufferedReader(new FileReader(filePath));
String key = null;
List<String> value = new ArrayList<String>();

//putting words in key and cat strings in value of map
int count = 0;
String cats[]= null;
value.clear();
while ((line = reader.readLine()) != null)
{
String[] parts = line.split(":", 2);
value.clear();
count++;
key = parts[0].trim();
cats=parts[1].split(", ");

for(int i=0;i<cats.length;i++) {
cats[i]=cats[i].trim();
cats[i]=cats[i].replace("[", "");
cats[i]=cats[i].replace("]", "");
value.add(cats[i]);
}

map.put(key, value);

//map.put(key, value);
}

最佳答案

List<String> value = new ArrayList<String>();应该移动到你的 while 循环的第一行并且两次调用 clear已删除。

它们被覆盖的原因是您只分配一个列表并将其放入映射的 k:v 对的每个值中。因此,对于每个类别,您都有相同的列表,并且每次读取新行时都会清除并重建该列表的内容。所以每个值都将包含在最后一个 clear 之后添加的内容。 .

另一方面,如果您在每次迭代时创建一个新列表,每个类别都会有它自己的列表,您想要什么。

关于java文件读取并将其存储在 HashMap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014353/

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