Ну, вам не нужно проходить итерации вручную - вы можете просто использовать:
map = new HashMap<String, String>(map); // Adjust type arguments as necessary
Я верю, что это сделает всю итерацию за вас. возможно , что clone()
сделает то же самое, но я не знаю точно.
В любом случае, я не верю, что вы ничего не упустили - я не думаю, что есть какой-либо способ выполнить операцию «обрезки» в текущем API. В отличие от ArrayList
, такая операция в любом случае была бы достаточно сложной (как и расширение) - это не просто случай создания нового массива и выполнения одной копии массива. Записи должны быть перераспределены. Преимущество получения HashMap
для самостоятельного выполнения этой операции, вероятно, заключается в том, что хэш-коды не нуждаются в повторной обработке.