Существует коллекция, в которой можно хранить строку и целое число с повторными значениями? - PullRequest
4 голосов
/ 16 августа 2011

У меня есть текст, и я сделаю некоторую фильтрацию, основанную на количестве слов каждой фразы.

Я думал об использовании карты, в ключе я вставил фразу int значение,количество слов, итерируйте на карте и удалите строки, которые имеют меньшее значение, чем указано ранее.

  • Существует карта , где можно хранить повторяющиеся записи (фраза и количество)?
  • Могу ли я получить с карты в порядке расположения элементов?Это потому, что это текст, поэтому важен порядок фраз.

ПРИМЕР

Исходный текст

My name is Renato | 4<br> Today is Tuesday | 3<br> I live in Brazil | 4<br> My name is Renato | 4<br> 20 years | 2<br> StackOverflow is a fantastic website | 5

Фильтрация удаления фраз, содержащих менее 4 слов

Окончательный текст

My name is Renato<br> I live in Brazil<br> My name is Renato<br> StackOverflow is a fantastic website

Ответы [ 3 ]

3 голосов
/ 16 августа 2011

Есть карта, где я могу разместить повторяющиеся записи (фраза и количество)?

Почему бы не иметь

Map<Integer, List<String>> wordCountToStringsMap

Могу ли яполучить с карты в том порядке, в котором я разместил элементы?Это потому, что это текст, поэтому порядок фраз важен.

1 голос
/ 16 августа 2011

Я думаю, что вы можете перейти на LinkedHashMap. Он сохраняет порядок, в котором вы ввели

Map<String,Integer> map=new LinkedHashMap<String,Integer>();

Затем вы можете добавлять и выполнять свои операции.

0 голосов
/ 16 августа 2011

Ну, интерфейс Map выглядит так, как вам нужно. Конкретная реализация должна быть LinkedHashMap, потому что вы хотите иметь возможность извлекать элементы в том порядке, в котором вы их вставили.

Так у вас будет

Map <String, Integer> myMap = new LinkedHashMap <String, Integer> ();

затем просто добавьте строки, переберите их с помощью for (строковая фраза: myMap.keys ()) и сделайте с ними то, что хотите!

...