Mendapatkan Ukuran Iterable di Java

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar tentang berbagai cara untuk mendapatkan ukuran Iterable di Java.

2. Iterable dan Iterator

Iterable adalah salah satu antarmuka utama kelas koleksi di Java.

The Collection antarmuka meluas Iterable dan karenanya semua kelas anak Collection juga menerapkan Iterable .

Iterable hanya memiliki satu metode yang menghasilkan Iterator :

public interface Iterable { public Iterator iterator(); }

Ini Iterator kemudian dapat digunakan untuk iterate atas unsur-unsur dalam Iterable .

3. Ukuran Iterable Menggunakan Core Java

3.1. untuk setiap Loop

Semua kelas yang mengimplementasikan Iterable memenuhi syarat untuk setiap loop di Java.

Ini memungkinkan kita untuk mengulang elemen di Iterable sambil meningkatkan penghitung untuk mendapatkan ukurannya:

int counter = 0; for (Object i : data) { counter++; } return counter;

3.2. Collection.size ()

Dalam kebanyakan kasus, Iterable akan menjadi instance Collection, seperti List atau Set .

Dalam kasus seperti itu, kita bisa memeriksa jenis metode Iterable dan call size () di atasnya untuk mendapatkan jumlah elemen.

if (data instanceof Collection) { return ((Collection) data).size(); }

Panggilan ke size () biasanya jauh lebih cepat daripada melakukan iterasi ke seluruh koleksi.

Berikut adalah contoh yang menunjukkan kombinasi dari dua solusi di atas:

public static int size(Iterable data) { if (data instanceof Collection) { return ((Collection) data).size(); } int counter = 0; for (Object i : data) { counter++; } return counter; }

3.3. Stream.count ()

Jika kita menggunakan Java 8, kita dapat membuat Stream dari Iterable.

Objek aliran kemudian dapat digunakan untuk mendapatkan jumlah elemen di Iterable .

return StreamSupport.stream(data.spliterator(), false).count();

4. Ukuran Iterable Menggunakan Library Pihak Ketiga

4.1. IterableUtils # size ()

The Apache Commons Koleksi perpustakaan memiliki bagus IterableUtils kelas yang menyediakan metode utilitas statis untuk Iterable contoh.

Sebelum kita mulai, kita perlu mengimpor dependensi terbaru dari Maven Central:

     org.apache.commons     commons-collections4     4.1 

Kita bisa memanggil metode size () dari IterableUtils pada objek Iterable untuk mendapatkan ukurannya.

return IterableUtils.size(data);

4.2. Iterabel # ukuran ()

Demikian pula, pustaka Google Guava juga menyediakan kumpulan metode utilitas statis di kelas Iterables -nya untuk beroperasi pada instance Iterable .

Sebelum kita mulai, kita perlu mengimpor dependensi terbaru dari Maven Central:

     com.google.guava     guava     25.0 

Memanggil metode ukuran statis () pada kelas Iterables memberi kita jumlah elemen.

return Iterables.size(data);

Di balik terpal, IterableUtils dan Iterables menggunakan kombinasi pendekatan yang dijelaskan pada 3.1 dan 3.2 untuk menentukan ukurannya.

5. Kesimpulan

Pada artikel ini, kami melihat berbagai cara untuk mendapatkan ukuran Iterable di Java.

Kode sumber untuk artikel ini dan kasus pengujian yang relevan tersedia di GitHub.