Чтобы делать то, что вы описываете, мне лично нравится использовать функциональный стиль программирования:
Map<String,Object> map = // obtained somehow;
Map<String,Object> filtered = Maps.filterKeys(map, new Predicate() {
@Override
public boolean apply(String input) {
return input.length() < 3;
}
});
Фрагмент кода использует библиотеку коллекций Google. Он создает представление исходной карты, беря только те записи, ключи которых соответствуют предоставленному предикату.