22 Kasım 2009, Pazar
java: HashMap<String, int> çalışmıyor
HashMap<String, int>
çalışma görünmüyor ama HashMap<String, Integer>
çalışır.
Neden herhangi bir fikir?
CEVAP
22 Kasım 2009, Pazar
Java genel bağımsız değişken olarak ilkel türlerini kullanabilirsiniz. Yerine kullanın:
Map<String, Integer> myMap = new HashMap<String, Integer>();
auto-boxing/unboxing ile kod arasında çok az fark vardır. Otomatik boks yazabilirsiniz
myMap.put("foo", 3);
yerine:
myMap.put("foo", new Integer(3));
Auto-boks ilk sürümü örtülü olarak ikinci dönüştürülür anlamına gelir. Otomatik kutulama yazabilirsiniz
int i = myMap.get("foo");
yerine:
int i = myMap.get("foo").intValue();
intValue()
örtülü eğer arama anahtarı NullPointerException
örneğin: bir oluşturmak bulunmaz eğer anlamına gelir
int i = myMap.get("bar"); // NullPointerException
Nedeni type erasure. , Diyelim ki, aksine C# genel türleri çalışma zamanında korunur değil. Sadece "açık çevrim sen bunu kaydetmek için: . sözdizimsel şeker onlar
Integer i = (Integer)myMap.get("foo");
Bir örnek vermek gerekirse, bu kodu tamamen yasal
Map<String, Integer> myMap = new HashMap<String, Integer>();
Map<Integer, String> map2 = (Map<Integer, String>)myMap;
map2.put(3, "foo");
Bunu Paylaş:
Java: HashMap dönüştürmek için nasıl&l...
Eclipse/Java kod tamamlama çalışmıyor...
Nasıl java kullanmak için.String.Scala...
Java int String - İnteger.(ben) vs yen...
Java Hashmap: Nasıl anahtar değerini a...