Menjelaskan Perbezaan antara HashMap dan Objek Peta
Di Java, objek HashMap dan Map sering kelihatan boleh ditukar ganti, menyebabkan kekeliruan mengenai perbezaan asasnya . Untuk menjelaskan, tiada perbezaan dalam objek itu sendiri—dalam kedua-dua kes, anda memperoleh HashMap dengan kunci Rentetan dan nilai Objek.
Perbezaan terletak pada antara muka yang anda kaitkan dengan objek. Apabila anda mengisytiharkan objek sebagai HashMap
Mari kita terokai contoh praktikal untuk menggambarkan konsep ini:
Pertimbangkan kelas bernama Foo yang memulakan dua peta dalaman, perkara dan lebih banyak perkara, dan berkongsinya melalui kaedah pengakses. Peta ini pada mulanya dilaksanakan sebagai HashMaps.
Sekarang, katakan subkelas Foo, SpecialFoo, menggunakan kaedah biasa untuk memanipulasi kedua-dua perkara dan lebih banyak Perkara. Kaedah ini ditakrifkan dengan antara muka yang sama seperti kaedah pengakses (HashMap
Kemudian, jika anda memutuskan untuk menggantikan pelaksanaan HashMap dalam Foo dengan TreeMap, SpecialFoo akan menghadapi ralat kompilasi kerana kontrak telah dilanggar—Foo kini menyediakan TreeMaps dan bukannya HashMaps. Ini memerlukan semakan SpecialFoo.
Untuk mengelakkan situasi sedemikian, adalah bijak untuk mengisytiharkan kaedah pengakses dan peta dalaman menggunakan antara muka umum, Map
Pengekodan kepada antara muka yang paling umum biasanya kurang rapuh dan lebih mudah disesuaikan. Dengan mematuhi prinsip ini, anda mengekalkan fleksibiliti dan mengelakkan ralat yang tidak dijangka semasa melaksanakan perubahan pada pangkalan kod anda.
Atas ialah kandungan terperinci HashMap lwn. Map: Bilakah Anda Harus Menggunakan Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!