Задание: Есть текст, нужно найти слова которые повторяются и сколько раз. Реализовать нужно массивом Map.
| Код | private static void perebor2(){ String n[] = a.replaceAll("[^a-zA-Z ]", "").split(" ");//Оставляем только слова Set <String> set = new HashSet <String> (Arrays.asList(n));/*записываем массив1 в ХЭШ, чтобы убрать дубликаты(считал количество индивидуальных слов)*/ String[] r = set.toArray(new String[set.size()]); Map<String, Text> map = new Hashtable<String, Text>(); for (int i=0; i<n.length; i++){ boolean ob1=map.containsKey(n[i]);//Проверяю наличие слова в массиве if (ob1==false)//Если нет добавляю слово и счетчик 1 по ключу=слову {Text st = new Text(1, n[i]); map.put(n[i], st); //ch=st.getnumber(); } else//Если есть то должен просто увеличить счетчик на +1 { Integer get = map.getnumber(n[i]);/*Вот тут у меня ошибка, как взять только цифру по ключу из массива?*/ get++; Text st1 = new Text(get, n[i]); map.put(n[i], st1); } System.out.println(map.get(n[i]));//работает } }
|
В целом программа работает, не могу реализовать только правильное увеличение счетчика, потому что не могу вытащить значение number по ключу. Получается так сделать, если сделать массив map одномерным и реализовать следующий код.
| Код | Integer get = map.get(n[i]); get++; map.put(n[i], get);
|
Но тогда у меня проблема с выводом в виде: слово-счетчик.
И еще один вопрос. Можно ли как то отсортировать map если в нем только 1 значение int, если можно то как? Arrays.sort(???); Помогите пожалуйста. Заранее спасибо. |