gpt4 book ai didi

java - 计算 java 中 ArrayList 中字符串的出现次数 - 处理

转载 作者:行者123 更新时间:2023-11-29 05:09:14 25 4
gpt4 key购买 nike

您好,我目前正在使用 processing 和 learning java,我的代码基本上是通过 ArrayList 工作的,找到出现次数最多的单词并将其输出到控制台,我的代码如下:

import java.util.Arrays;

ArrayList<String> words = new ArrayList();


int[] occurrence = new int[2000];
void setup() {
size(800,480);
smooth();

String[] data = loadStrings("data/data.txt");
Arrays.sort(data);

for (int i = 0; i < data.length; i ++ ) {
words.add(data[i]);
words.add(data[j]); //Put each word into the words ArrayList
}
for(int i =0; i<data.length; i++) {
occurrence[i] =0;
for(int j=i+1; j<data.length; j++) {
if(data[i].equals(data[j])) {
occurrence[i] = occurrence[i]+1;
}
}
}
int max = 0;
String most_talked ="";
for(int i =0;i<data.length;i++) {
if(occurrence[i]>max) {
max = occurrence[i];
most_talked = data[i];
}
}

println("The most talked keyword is " + most_talked + " occuring " + max + " times.");

我想知道我将如何改变它以添加第二个最常出现的词,依此类推。

我研究过使用 map 和 collection.sort,但不太了解如何继续使用它。我对 Java 还很陌生,所以任何东西都会有所帮助。

最佳答案

好像Multisets来自 Guava 库的库将非常适合这项工作。您可以将您读过的所有单词存储到 Multiset 中,当您想要计算出现次数(计数)时,您可以简单地遍历 Multisets.copyHighestCountFirst(myMultiset) 返回的副本:

import com.google.common.collect.*;
...

// data contains the words from the text file
Multiset<String> myMultiset = ImmutableMultiset.copyOf(data);

for (String word : Multisets.copyHighestCountFirst(myMultiset).elementSet()) {
System.out.println(word + ": " + myMultiset.count(word));
}

应该这样做。

关于java - 计算 java 中 ArrayList 中字符串的出现次数 - 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29268397/

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