Iterasi di atas Peta di Jawa

1. Ikhtisar

Dalam artikel singkat ini, kita akan melihat berbagai cara untuk melakukan iterasi melalui entri Peta di Java.

Sederhananya, kita bisa mengekstrak konten Peta menggunakan keySet (), valueSet () atau entrySet () . Karena itu semua adalah himpunan, prinsip iterasi yang serupa berlaku untuk semuanya.

The Map.entrySet API mengembalikan koleksi-pandangan peta, yang elemen dari Peta kelas. Satu-satunya cara untuk mendapatkan referensi ke satu entri peta adalah dari iterator tampilan koleksi ini.

T he entry.getKey () mengembalikan kunci dan entry.getValue () mengembalikan nilai yang sesuai.

Mari kita lihat beberapa di antaranya.

2. EntrySet dan untuk Loop

Pertama, mari kita lihat cara mengulang 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 mengonversi peta kami menjadi satu set entri dan kemudian mengulanginya menggunakan pendekatan klasik untuk setiap.

Kita bisa mengakses kunci dari setiap entri dengan memanggil getKey () dan kita bisa mengakses nilai dari setiap entri dengan memanggil getValue ().

3. Iterator dan EntrySet

Pendekatan lain adalah mendapatkan satu set entri dan melakukan iterasi 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 bisa mendapatkan instance Iterator menggunakan iterator () API dari entrySet (). Kemudian, seperti biasa, kita mengulang melalui iterator dengan iterator.next ().

4. Dengan Lambdas

Sekarang mari kita lihat bagaimana mengulang Peta menggunakan ekspresi lambda .

Seperti kebanyakan hal lain di Java 8, ini ternyata jauh lebih sederhana daripada alternatif; kita akan menggunakan metode forEach () :

public void iterateUsingLambda(Map map) { map.forEach((k, v) -> System.out.println((k + ":" + v))); } 

Dalam kasus ini, kita tidak perlu mengubah peta menjadi sekumpulan entri. Untuk mempelajari lebih lanjut tentang ekspresi lambda, Anda bisa mulai di sini.

5. API Streaming

Stream API adalah salah satu fitur utama Java 8 . Kita dapat menggunakan fitur ini untuk mengulang melalui Peta juga tetapi seperti pada 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 saat kami berencana melakukan beberapa pemrosesan Stream tambahan . Jika tidak, ini hanya forEach () sederhana seperti yang dijelaskan sebelumnya.

Untuk mempelajari lebih lanjut tentang Stream API, lihat artikel ini.

6. Kesimpulan

Dalam tutorial ini, kita telah berfokus pada operasi sederhana namun penting - melakukan iterasi melalui entri peta.

Kami telah melihat beberapa metode yang hanya dapat digunakan dengan Java 8, yaitu ekspresi Lambda dan API Stream .

Seperti biasa, contoh kode dalam artikel dapat ditemukan di GitHub.