gpt4 book ai didi

java - 改变 HashMap 大小 (Java)

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

我正在加载各种具有不同长度的文本文件,并将它们添加到名为“集合”的 HashMap 中。

List<String> textFileList = Arrays.asList("ArsenalNoStopWords.txt", "ChelseaNoStopWords.txt", "LiverpoolNoStopWords.txt",
"ManchesterUnitedNoStopWords.txt", "ManchesterCityNoStopWords.txt", "TottenhamNoStopWords.txt");

for (String text : textFileList) {
scanFile(text);
}

public static void scanFile(String textFileName) {
try {

Scanner textFile = new Scanner(new File(textFileName));

while (textFile.hasNext()) {
collection.put(textFile.next().trim(), 0);
}

textFile.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

在此之后,我加载其中一个文档并使用 HashMap(集合)计算其词频。

ArrayList<Integer> document = new ArrayList<Integer>();

document = processDocument("TottenhamNoStopWords.txt");

private static ArrayList<Integer> processDocument(String inFileName) throws IOException {

for (Map.Entry<String, Integer> entry : collection.entrySet()) {
entry.setValue(0);
}

Scanner textFile = new Scanner(new File(inFileName));
ArrayList<String> file = new ArrayList<String>();

while(textFile.hasNext()) {
file.add(textFile.next().trim().toLowerCase());
}

for(String word : file) {
Integer dict = collection.get(word);
if (!collection.containsKey(word)) {
collection.put(word, 1);
} else {
collection.put(word, dict + 1);
}
}

textFile.close();

ArrayList<Integer> values = new ArrayList<>(collection.values());
return values;
}

在此之后,我将变量值从 processDocument() 输出到一个文本文件 - 我有六个,所有这些都在不同的名称下。从理论上讲,每个团队的集合的每个版本都应该具有相同的长度,因为集合的键永远不会改变,并且总是来自 textFileList 列表——唯一改变的变量是要处理的文档。但是为什么我的 vector (ArrayLists) 非常长,而它们应该大小相同但频率值不同?

最佳答案

在第一步中,您使用 textFile.next().trim() 在第二部分使用 file.add(textFile.next().trim().toLowerCase ()),您的集合中有重复的小写和非小写值。

关于java - 改变 HashMap 大小 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52205356/

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