を超えるEnumMap
を使用することの長所と短所を比較しようとしています。私は常にString
を使用して検索しているので、キーを持つHashMap
が正しい選択であるようです。しかし、EnumMap
は、キーを特定の列挙に制限するという意図を伝えるため、より優れたデザインのようです。思考? ルックアップキーが文字列の場合、EnumMapまたはHashMap
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;
}
}
は
AnimalType
列挙型とマップがONLYどこにも動物を作成するために
AnimalFactory
によって使用されることを想定します。ここでは
は私が
Map
を使用する方法を示し、メイク信じる例です。
どれがMap
を使用しますか?
@dogbane – Javanator