İlk içgüdüm, her anahtarın bir nesne olduğunu ve bir çoğaltmanın eklenip eklenmediğini belirlemek için kullanılan bir karma kodu vardır. Ancak, bunu destekleyecek hiçbir şey bulamıyorum. Birisi bunu söyleyen veya gerçek cevabı veren bir bağlantı sağlayabilir mi? Teşekkürler!Java, bir anahtarın bir Harita'da kopya olup olmadığını belirlemek için ne kullanır?
cevap
Map
arayüzü iki anahtar null
ise onlar kilit k
öyle ki key.equals(k)
var aksi takdirde tekrar eden belirtir, ardından iki kez mevcut. içerir Bkz veya buraya yöntemini olsun: Ancak
http://java.sun.com/javase/6/docs/api/java/util/Map.html#containsKey(java.lang.Object)
, nasıl o çeki gerçekleştirme hakkında gitmek Map
uygulanması kalmış ve HashMap
onunla kontrol edecek potansiyel anahtarları daraltmak için bir karma kodunu kullanacak equals
yöntemi. Pratikte, tipik bir karma tabanlı harita için, kopyaları kontrol etmek için bir harita, (muhtemelen bir miktar mod), bazı kodları değiştirir ve aynı büyüklükte aynı büyüklükte aynı kodu veren herhangi bir tuşla karşılaştırmak için equals
'u kullanır.
Anahtardaki equals() yöntemini kullanır. HashCode() yöntemi, yalnızca harita için tuşların verimli bir şekilde saklanmasına yardımcı olur.
Soruyu yanlış okuyun, ancak yukarıdaki kişinin cevabı doğrudur ve bağlantım nasıl belirlendiğine ilişkin cevabı verir (eşittir yöntemi). Bağlantıdaki içeriklere bakın ve yöntemleri alın.
Bir harita nasıl eklenir: Bir Harita'da yinelenen anahtar olamaz. Yinelenen bir anahtar bulursanız eski değeri yeni değerle değiştirir. İşte Harita Arabirimi için bir link. Ayrıca, kotaya (K tuşu, V değeri) bakarsanız, haritanın nasıl çalıştığını da açıklar. Umarım yardımcı olur.
Standart Java kitaplıklarında sağlanan bir arabirim olan java.util.Map
'a başvurduğunuzu farz ediyorum. Bir anahtarın çoğaltılıp çoğaltılmadığını belirleme yöntemi, özel uygulamaya kalmıştır. Bir java.util.HashMap
, örneğin equals
ve hashCode
kullanır. Tamamen farklı bir şey kullanan Haritanın kendi uygulamanızı yazabilirsiniz.
Burada bir kenar muhafazasına dikkat edin. Boş anahtarlar her zaman çoğaltılmaz. Aslında, null anahtarlar, Map uygulamaları arasında çok fazla hayal kırıklığına neden olacak şekilde ortaya çıktı (Consistency numaralı telefondaki mesajıma bakın).
Örneğin, boş anahtarları HashMaps'te Tamam, ancak doğal sıralamayı kullanan bir TreeMap'ta veya boş anahtarların yasak olduğu ConccurentHashMap'de yoktur. Buradaki sorun, boş bir anahtar kullanırsanız ve refactoring sırasında uygulamaları değiştirdiğinizde korkunç çalışma zamanı hataları ortaya çıkarırsa, yöntemlerinin çoğuna yakalanmamış istisnalar atmalarıdır.
- 1. Bir JVM Sınıfı'nın bir Kotlin sınıfı olup olmadığını belirlemek istiyorum
- 2. Dize bir URL olup olmadığını belirlemek için Objective-C
- 3. Bir arabellek değiştirilmiş olup olmadığını belirlemek için vimrc işlevi nedir?
- 4. Anahtarın sözlükte olup olmadığını kontrol edin. Değilse,
- 5. Bir anahtarın dizideki son öğe olup olmadığını kontrol etme?
- 6. Nasıl Zamanlayıcı görevi tamamlandı olup olmadığını belirlemek için
- 7. Bir C++ 0x yapısının POD olup olmadığını belirlemek için bir derleme zamanı func/makro var mı?
- 8. Bir dizenin başka bir dizgeye eşit olup olmadığını belirlemek için NSPredicate kullanma
- 9. Bir öğenin sarılı olup olmadığını belirlemek için herhangi bir yol var mı?
- 10. Bir istemcinin canlı olup olmadığını öğrenmek için
- 11. Bir sınıf başvurulan olup olmadığını belirleme C#
- 12. Ekrandaki noktanın belirli UIScrollView alt görünümü içinde olup olmadığını belirlemek
- 13. Bir ConstructorInfo nesnesinin yönetilmeyen bir parametresi olup olmadığını nasıl belirleyebilirim?
- 14. jaket ortamının jenkins ortamının içinde olup olmadığını belirlemek
- 15. InstanceDir'in tam veya göreli bir yolu olup olmadığını ne belirler?
- 16. Bir çerez olup olmadığını nasıl kontrol edersiniz?
- 17. Herhangi bir veri sağlayıcısıyla çalışan bir veritabanında bir tablo olup olmadığını belirlemek için ADO.NET'i kullanmanın bir yolu var mı?
- 18. Bir KeyEventArg bir harf veya sayı olup olmadığını belirleyebilir miyim?
- 19. Bir Java alanının geçici değiştiriciye sahip olup olmadığını nasıl anlarım?
- 20. Dize belirli bir aralıkta olup olmadığını nasıl kontrol edilir. (Java)
- 21. URL bir görüntü olup olmadığını nasıl belirleyebilirim?
- 22. Java: Eşdeğerliği belirlemek için harici sınıf?
- 23. Bir tablonun var olup olmadığını kontrol etmek için bir UWP
- 24. NSTextFieldCell öğesinin ne zaman odaklanacağını belirlemek için odaklanma yok mu?
- 25. Bir akımın kapalı olup olmadığını nasıl anlarsınız?
- 26. Türün bir arabirim olup olmadığını kontrol edin
- 27. NSString boş olup olmadığını belirleme
- 28. AS3: AIR uygulamam için ne kullanır?
- 29. Django'da, belirli bir metnin çevirisi olup olmadığını nasıl belirleyebilirim?
- 30. İki dosyanın içeriğinin aynı olup olmadığını belirlemek için Perl'i nasıl kullanabilirim?
Bundan daha iyi açıkladığınız için teşekkürler :) – kevindaub