다음 코드는 Hashtable에서 요소를 안전하게 제거하는 방법입니까?반복에서 해시 테이블의 요소를 제거하십시오.
Enumeration keys = siCache.keys(); //siCache is Hashtable
while(keys.hasMoreElements())
{
String k = (String) keys.nextElement();
Object v = siCache.get(k);
if(condition) siCache.remove(k);
}
왜 요소가 항상 '문자열'에 캐스트되는지 알 수 없습니다. 'HashTable.remove'는'toString'이 아닌 키 자체를 기대합니다. 만약 당신의 상태가 어떤 이유로'String'을 필요로한다면,'HashTable.remove'에 대한 명령으로 사용하지 마십시오. –
처럼 보입니다. 안전하지는 않지만 특별한 이유가 있습니까? – rkg
@Jon_darkstar Q : toString()은 String으로 캐스팅해야합니까? A : 아무것도. – EJP