Я хочу программу Java для подсчета наиболее часто элементов в файлепрограммы Java для подсчета наиболее часто встречающихся элементов
ответ
Является ли проблема, что ваш «newCount» является String
вместо Integer
?
String newCount = entry.getValue().toString();
if(topN.containsKey(entry.getKey())){
newCount += topN.get(entry.getKey());
}
Это не должно быть «Integer»; это должно быть «Актер», в соответствии с определением карты, но это было бы причиной того, что «put» выбрасывает ошибку. – Josh
о, добра, да. Спасибо, @SpacePope! Честно говоря, я не совсем уверен, что любой из типов * должен быть ... не должен ли парсер читать актеров и эскизов (обе строки, может быть?), А затем перебирать их, чтобы обновить карту актеров и счетчиков (string + integer), затем взять верхние N записей в этой карте, отсортированные по значению? –
Да ...для некоторых вопросов о SO вы можете только разумно ожидать решения одной проблемы за раз. :) – Josh
С линией Parser parser;
вы объявляете переменную своего класса Parser
, но не инициализировать эту varialbe. Вместо этого используйте Parser parser = new Parser();
.
Там также, как представляется, в целом много проблем типа вдоль линий
String newCount = entry.getValue().toString();
if(topN.containsKey(entry.getKey())){
newCount += topN.get(entry.getKey());
}
topN.put(entry.getKey(), newCount);
Похоже, что вы хотите, чтобы сложить счетчики, но это не будет работать, если вы преобразовать Integer
в String
первый ! Кроме того, key
из Entry
будет иметь значение, так topN
никогда не может содержать этот ключ, так как это Map
из Strings
и Actors
, и даже если это было бы, как бы вы добавить Actor
к Integer
(или String
)? Наконец, как отмечали другие, put
завершится с ошибкой, так как тип ключа и значение не соответствуют типам Map
.
не зная, что эти другие классы (Sketch
, Value
, Actor
и т.д.) делают, это очень трудно сделать дать четкий совет, как решить вашу проблему.
Я не думаю, что у меня будет место для всех кодов, и теперь я получаю ошибку форматирования кода, чтобы опубликовать все соответствующие классы. – George
Не нужно публиковать все классы, просто описывайте, что они делают. В частности, что такое «Эскиз» и «Ценность» и каково их отношение к «Актеру»? –
Публичный класс ApproxCount
topN
заявлено как Map<String, Actor>
. Таким образом, ключ должен быть String
, а значение должно быть типа Actor
.
В topN.put(entry.getKey(), newCount);
, newCount
(a String) не является Actor
. Также проверьте, является ли строка entry.getKey()
.
public class Parser {
private BufferedReader bf;
private static final String ACTOR_MOVIE_FILE = "actormovie.txt";
private Map<String, Actor> actors;
//this is the input file size
int fileSize = ACTOR_MOVIE_FILE.length();
public Parser() {
try {
bf = new BufferedReader(new FileReader(ACTOR_MOVIE_FILE), 32768);
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "file cannot be located ", "File not found exception", JOptionPane.ERROR_MESSAGE);
}
actors = new Hashtable<String, Actor>(1713251);
}
/**
* this reads data on a line one at a time
* @return actors in the hash table, with the name of an actor as a,
* and value as the actor object
*/
public Map<String, Actor> readLines() {
String line=" ";
while(true){
try {
line = bf.readLine();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "deadlock file not in proper format", "we have error reading the file", JOptionPane.ERROR_MESSAGE);
}
if(line == null){
break;
}
String[] tokens = line.split("/");
assemblyLines(tokens);
}
try {
bf.close();
} catch(IOException e){
}
return actors;
}
/**
* from a line we get stringTokenizers parse to the data structures. Film is described as a
* stringTokenizer with film object created from it. There are actors which are as well
* stringTokenizers created as actor object
* there is an actor table that controls entry space. In occurrences of other actors ,
* the object is altered, other than that
* objected is created and appended to the table
* @param stringTokenizer makes the text file divided into individual components
*/
public void assemblyLines(String[] stringTokenizer){
Film film = new Film(stringTokenizer[0]);
for(int i = 1; i < stringTokenizer.length;i++){
Actor actor;
String actorName = stringTokenizer[i];
if(actors.containsKey(actorName)){
actor = actors.get(actorName);
} else {
actor = new Actor(actorName);
actors.put(actorName, actor);
}
film.addActor(actor);
actor.addFilm(film);
}
}
}
- 1. ruby arrays количество наиболее часто встречающихся элементов
- 2. Поиск наиболее часто встречающихся наборов предметов
- 3. Поиск наиболее часто встречающихся комбинаций чисел
- 4. Поиск наиболее часто встречающихся фразы по фразе
- 5. CakePHP список наиболее часто встречающихся значений
- 6. count наиболее часто встречающихся символов в тексте
- 7. Найти 15 наиболее часто встречающихся слов в текстовом файле - java
- 8. как увеличить количество наиболее часто встречающихся слов с использованием Java
- 9. Топ 5 наиболее часто встречающихся из массива C++
- 10. Наиболее часто встречающиеся слова
- 11. Наиболее эффективная структура данных для поиска наиболее часто используемых элементов
- 12. Как «сортировать» по убыванию из 30 наиболее часто встречающихся слов?
- 13. Найдите 10 наиболее часто встречающихся слов с морфологией
- 14. Поиск 3 наиболее часто встречающихся подстрок в строке в PHP
- 15. Подсчет и отображение часто встречающихся строк (Java)
- 16. Сортировка списка и получение наиболее часто встречающихся слов
- 17. Поиск наиболее часто встречающихся пар в списке списков
- 18. Получить подмножество наиболее часто встречающихся фиктивных переменных в pandas
- 19. Получение наиболее часто встречающихся символов в массиве в c
- 20. одно или несколько наиболее часто встречающихся букв в строке python
- 21. Поиск «n» наиболее часто встречающихся слов из файла с помощью Java?
- 22. Найти k наиболее встречающихся элементов в целочисленном массиве
- 23. Java - Использование параллельных массивов для поиска часто встречающихся часовых номеров
- 24. Выбор 10 самых часто встречающихся строк из массива, java
- 25. Поиск 25 наиболее встречающихся строк
- 26. Получение наиболее часто используемых элементов без учета каждого элемента
- 27. Сортировка ArrayList в алфавитном порядке для большинства/наименее часто встречающихся
- 28. Java - печать наименее встречающихся элементов в массиве
- 29. получение шанса повторения часто встречающихся значений пара
- 30. Наиболее часто встречающиеся n-слова в java ArrayList
Вы инициализировали 'парсер'? – 4J41
Я вызываю парсер из этого класса: – George
И какая ошибка вы получаете? – zbr