Junior — Middle
Bir nesne içinde anahtar olarak dizge olmayan bir değer kullanılabilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Java'da (ve özellikle Android'de) HashMap gibi standart nesnelerde anahtar herhangi bir sınıfın nesnesi olabilir, mutlaka dize olmak zorunda değildir. Önemli olan, bu nesnenin equals() ve hashCode() metodlarını doğru şekilde uygulamasıdır. Örneğin, Integer, Enum veya kendi sınıflarınızı anahtar olarak kullanabilirsiniz.
Örnek:
Map<Integer, String> map = new HashMap<>();
map.put(1, "bir");
map.put(2, "iki");
String value = map.get(1); // "bir"
Ancak, equals ve hashCode metodlarını geçersiz kılmadan normal bir nesne kullanılırsa, davranış beklenmedik olabilir, çünkü anahtarlar bu metodlara göre karşılaştırılır. JavaScript'ten farklı olarak, nesne anahtarları her zaman dizeye dönüştürülürken, Java'da Map'teki anahtarlar herhangi bir nesne olabilir.