【发布时间】:2013-11-09 15:02:26
【问题描述】:
我想从HashTable 中删除元素,
我为此使用hashTable.remove(),但没有得到
Hashtable<Integer,String> players = new Hashtable<Integer,String>();
players.put(1, "Sachin Tendulkar");
players.put(2, "Rahul Dravid");
players.put(3, "Virat Kohli");
players.put(4, "Rohit Sharma");
Enumeration<String> enumration = players.elements();
while(enumration.hasMoreElements()){
String elmnt = enumration.nextElement();
System.out.println(elmnt);
if(elmnt.startsWith("R")){
players.remove(elmnt);
System.out.println(elmnt+"::Contains R");
}
}
System.out.println(players);
我得到的输出是:
Rohit Sharma
Rohit Sharma::Contains R
Virat Kohli
Rahul Dravid
Rahul Dravid::Contains R
Sachin Tendulkar
{4=Rohit Sharma, 3=Virat Kohli, 2=Rahul Dravid, 1=Sachin Tendulkar}
【问题讨论】:
-
为什么不使用迭代器并使用 remove() 使用它?
-
您正在使用 player.elements() 获取值,然后尝试使用值而不是键从哈希表中删除元素。