Estoy tratando de sopesar los pros y los contras de usar un EnumMap
sobre un HashMap
. Dado que, siempre buscaré utilizando un String
, parece que un HashMap
con una clave String
sería la elección correcta. Sin embargo, un EnumMap
parece mejor diseño porque transmite mi intención de restringir las claves a una enumeración específica. ¿Pensamientos?EnumMap o HashMap si la clave de búsqueda es una Cadena
Aquí está un ejemplo de fantasía, que muestra cómo me va a utilizar el Map
:
enum AnimalType { CAT, DOG }
interface Animal {}
class Cat implements Animal {}
class Dog implements Animal {}
public class AnimalFactory {
private static final Map<AnimalType, Animal> enumMap
= new EnumMap<AnimalType, Animal>(AnimalType.class);
// versus
private static final Map<String, Animal> stringMap
= new HashMap<String, Animal>();
static {
enumMap.put(AnimalType.CAT, new Cat());
enumMap.put(AnimalType.DOG, new Dog());
stringMap.put("CAT", new Cat());
stringMap.put("DOG", new Dog());
}
public static Animal create(String type) {
Animal result = enumMap.get(AnimalType.valueOf(type));
Animal result2 = stringMap.get(type);
return result;
}
}
asumir que la enumeración y AnimalType
mapa sólo serán utilizados por el AnimalFactory
para crear animales y en ninguna otra parte.
¿Cuál Map
debo usar?
@dogbane ¿algún progreso? – Javanator