है तो मैं HashMap
पर EnumMap
का उपयोग करने के पेशेवरों और विपक्ष का वजन करने की कोशिश कर रहा हूं। चूंकि, मैं हमेशा String
का उपयोग करके देख रहा हूं, ऐसा लगता है कि HashMap
String
कुंजी के साथ सही विकल्प होगा। हालांकि, EnumMap
बेहतर डिज़ाइन की तरह प्रतीत होता है क्योंकि यह एक विशिष्ट गणना के लिए कुंजी को प्रतिबंधित करने के अपने इरादे को व्यक्त करता है। विचार?एनमैप या हैश मैप यदि लुकअप कुंजी स्ट्रिंग
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
enum और नक्शा ही कहीं और जानवरों को बनाने के लिए AnimalFactory
द्वारा इस्तेमाल किया जाएगा और:
यहाँ दिखा मैं कैसे Map
का उपयोग किया जाएगा एक मेकअप का मानना है कि उदाहरण है,।
कौन सा Map
मुझे उपयोग करना चाहिए?
@ डॉगबेन कोई प्रगति? – Javanator