Java 遍历映射
我试图遍历一个映射并删除某些元素来构造一个受控词汇表。这是我的密码:Java 遍历映射,java,iterator,Java,Iterator,我试图遍历一个映射并删除某些元素来构造一个受控词汇表。这是我的密码: public static Map<String, Integer> controlVocab(Map<String, Integer> docf){ Set<String> set = docf.keySet(); Iterator<String> itr = set.iterator(); for (Map.Entry <String,
public static Map<String, Integer> controlVocab(Map<String, Integer> docf){
Set<String> set = docf.keySet();
Iterator<String> itr = set.iterator();
for (Map.Entry <String, Integer> entry : docf.entrySet())
{
if(entry.getValue()<50){
docf.remove(entry.getKey());
}
}
return docf;
}
publicstaticmap-controlVocab(Map-docf){
Set Set=docf.keySet();
迭代器itr=set.Iterator();
对于(Map.Entry:docf.entrySet())
{
如果(entry.getValue()是,这是有意义的:因为通常不允许一个线程在另一个线程迭代集合时修改集合
也许最好的方法是在一个新列表中收集要删除的元素,然后在该列表上迭代删除原始映射中相应的条目
试试这样:
List<String> mylist = new ArrayList<String>();
for (Map.Entry <String, Integer> entry : docf.entrySet()){
if(entry.getValue()<50){
mylist.add(entry.getKey());
}
}
for (String key : mylist){
docf.remove(key);
}
List mylist=new ArrayList();
对于(Map.Entry:docf.entrySet()){
if(entry.getValue()