1. Gambaran keseluruhan
Dalam artikel ringkas ini, kita akan melihat berbagai cara lelaran melalui entri Peta di Jawa.
Ringkasnya, kita dapat mengekstrak kandungan Peta menggunakan keySet (), valueSet () atau entrySet () . Oleh kerana itu semua set, prinsip iterasi serupa berlaku untuk semuanya.
The Map.entrySet API mengembalikan koleksi-view peta, di mana elemen adalah dari Peta kelas. Satu-satunya cara untuk mendapatkan rujukan ke satu entri peta adalah dari pengulangan paparan koleksi ini.
T dia entry.getKey () mengembalikan kunci dan entry.getValue () mengembalikan nilai yang sepadan.
Mari kita lihat beberapa perkara ini.
2. EntrySet dan untuk Gelung
Pertama, mari kita lihat bagaimana melakukan lelaran melalui Peta menggunakan Set Entri :
public void iterateUsingEntrySet(Map map) { for (Map.Entry entry : map.entrySet()) { System.out.println(entry.getKey() + ":" + entry.getValue()); } }
Di sini, kami menukar peta kami ke sekumpulan entri dan kemudian mengulanginya menggunakan pendekatan klasik untuk setiap pendekatan.
Kita boleh mengakses kunci setiap entri dengan memanggil getKey () dan kita dapat mengakses nilai setiap entri dengan memanggil getValue ().
3. Iterator dan EntrySet
Pendekatan lain ialah mendapatkan satu set entri dan melakukan lelaran menggunakan Iterator:
public void iterateUsingIteratorAndEntry(Map map) { Iterator
iterator = map.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = iterator.next(); System.out.println(entry.getKey() + ":" + entry.getValue()); } }
Perhatikan bagaimana kita boleh mendapatkan contoh Iterator menggunakan iterator () API entrySet (). Kemudian, seperti biasa, kami mengulangi iterator dengan iterator.next ().
4. Dengan Lambdas
Sekarang mari kita lihat bagaimana mengulang Peta menggunakan ungkapan lambda .
Seperti kebanyakan perkara lain di Java 8, ini ternyata jauh lebih sederhana daripada alternatif; kami akan menggunakan kaedah forEach () :
public void iterateUsingLambda(Map map) { map.forEach((k, v) -> System.out.println((k + ":" + v))); }
Dalam kes ini, kita tidak perlu menukar peta ke sekumpulan entri. Untuk mengetahui lebih lanjut mengenai ungkapan lambda, anda boleh bermula di sini.
5. Aliran API
Stream API adalah salah satu ciri utama Java 8 . Kita dapat menggunakan fitur ini untuk mencari Peta juga tetapi seperti contoh sebelumnya, kita perlu mendapatkan satu set entri terlebih dahulu:
public void iterateUsingStreamAPI(Map map) { map.entrySet().stream() // ... .forEach(e -> System.out.println(e.getKey() + ":" + e.getValue())); }
Ini harus digunakan ketika kita berencana untuk melakukan beberapa pemprosesan Aliran tambahan . Jika tidak, ini hanya untukEach () seperti yang dijelaskan sebelumnya.
Untuk mengetahui lebih lanjut mengenai API Aliran , lihat artikel ini.
6. Kesimpulannya
Dalam tutorial ini, kami memfokuskan pada operasi yang mudah tetapi kritikal - berulang melalui entri peta.
Kami telah melihat beberapa kaedah yang hanya dapat digunakan dengan Java 8, iaitu ekspresi Lambda dan Stream API.
Seperti biasa, contoh kod dalam artikel boleh didapati di GitHub.