Я смотрю, как передать значение слова и его соответствующий счетчик для сохранения в переменную вне цикла for
. Мой код в настоящее время:
import java.util.Iterator;
import java.util.*;
import com.google.common.collect.ImmutableMultiset;
import com.google.common.collect.Multiset;
import com.google.common.collect.Multisets;
ImmutableMultiset<String> top = null;
void setup() {
size(800, 480);
smooth();
String[] data = loadStrings("data/data.txt");
ImmutableMultiset<String> myMultiset = ImmutableMultiset.copyOf(data);
top = Multisets.copyHighestCountFirst(myMultiset);
Iterator it = top.entrySet().iterator();
for (int i = 0; (i < 5) && it.hasNext(); i++) {
Multiset.Entry entry = (Multiset.Entry) it.next();
String word = (String) entry.getElement();
int count = entry.getCount();
System.out.println(word + " -> " + count);
}
}
Мне нужны эти значения, чтобы применить их к гистограмме в моей функции draw()
.
Вы можете объявлять переменные в своем классе, а не локально в расширенном цикле.
например
private String word;
private int count;
и использовать геттеры для их вызова
например
public String getWord(){ return word; }
Чтобы расширить ответ на Мюрат, это вопрос переменной видимости. Все, что объявлено в блоке цикла for (между границами {}), будет видимо только внутри этого блока.
Если вы объявите переменную count вне цикла цикла for, вы сможете использовать ее в пределах области, содержащей цикл for; в этом случае метод установки.
Пример Мурата позволит вам получить значение этой переменной из любого места, независимо от того, находится ли он внутри этого или какого-либо другого класса.