2013-08-14 2 views
0

У меня есть hashmap, состоящий из ключей в виде слов (строк) и значений как их counts (integer).Удалить слова остановки из hashmap

Мне нужно удалить стоп-слова из хэш-карты. По существу, мне нужно сделать hMap.remove («then»), hMpa.remove («где») для 67 слов. Есть ли более простой способ сделать это? Могу ли я удалить несколько ключей из хэш-карты за один такт.

+0

Нет, добавьте свои слова в список и вызовите remove для каждого из них в цикле. –

ответ

5

Применение hMap.keySet().removeAll(the_stuff_you_want_to_remove)

От documentation:

Набор поддерживает удаление элемента, которое удаляет соответствующее отображение из карты, через Iterator.remove, Set.remove, RemoveAll, retainAll и четкие операции.

+0

Это как hMap.keySet(). RemoveAll ("then", "where", "apple")? – user2623946

+0

@ user2623946 Вам необходимо передать ему коллекцию, в которой вы можете составить свои 67 терминов. –

+0

@ user2623946 Нет, удалить все получает коллекцию в качестве параметра. – Gamb

1

Следующие должны помочь вам;

Map<String, Integer> ohm = new HashMap<String, Integer>(); 
List<String> al = new ArrayList<String>(); 
al.add("One"); 
al.add("Two"); 

ohm.put("One", 1); 
ohm.put("Two", 2); 
ohm.put("Three", 3); 

ohm.keySet().removeAll(al); 
System.out.println(ohm); // Output: [Three = 3] 

Надеюсь, это поможет.

2

@ user2623946 Нет, вы должны использовать коллекцию для этого. Или что-то в этом роде:

String[] arr = {"a","b","c"}; 
myMap.keySet().removeAll(Arrays.asList(arr)); 
Смежные вопросы