Iterable méretének megszerzése Java-ban

1. Áttekintés

Ebben a gyors bemutatóban megismerhetjük az an méretének különféle módjait Iterálható Java-ban.

2. Iterálható és iterátor

Iterálható a Java gyűjteménycsoportok egyik fő felülete.

A Gyűjtemény interfész kiterjed Iterálható és ezért az összes gyermekosztály Gyűjtemény végrehajtani is Iterálható.

Iterálható csak egy olyan módszerrel rendelkezik, amely egy Iterátor:

nyilvános felület Iterable {public Iterator iterator (); }

Ez Iterátor ezután felhasználhatók a Iterálható.

3. Iterálható méret Core Java használatával

3.1. az egyes Hurok

Minden osztály, amely megvalósítja Iterálható jogosultak a az egyes hurok a Java-ban.

Ez lehetővé teszi számunkra, hogy továbblépjünk a Iterálható miközben növeli a számlálót, hogy megkapja a méretét:

int számláló = 0; for (i objektum: adatok) {számláló ++; } visszaszámláló;

3.2. Collection.size ()

A legtöbb esetben a Iterálható példánya lesz Gyűjtemény, mint például a Lista vagy a Készlet.

Ilyen esetekben ellenőrizhetjük a Iterálható és hívjon méret() módszer, hogy megkapja az elemek számát.

if (Gyűjtemény adatpéldánya) {return ((Gyűjtemény) adatok] .size (); }

A hívás méret() általában sokkal gyorsabb, mint az egész kollekció iterálása.

Íme egy példa, amely bemutatja a fenti két megoldás kombinációját:

public static int size (Iterable data) {if (a gyűjtemény adatpéldánya) {return ((gyűjtemény) adatok) .size (); } int számláló = 0; for (i objektum: adatok) {számláló ++; } visszaszámláló; }

3.3. Stream.count ()

Ha Java 8-at használunk, létrehozhatunk egy Folyam tól Iterálható.

A folyamobjektummal ezután meg lehet kapni az elemszámot a Iterálható.

return StreamSupport.stream (data.spliterator (), hamis) .szám ();

4. Iterálható méret harmadik féltől származó könyvtárak használatával

4.1. IterableUtils # size ()

A Apache Commons Gyűjtemények a könyvtárnak szép IterableUtils osztály, amely statikus segédprogramokat nyújt a Iterálható példányok.

Mielőtt elkezdenénk, be kell importálnunk a legújabb függőségeket a Maven Centralból:

     org.apache.commons commons-gyűjtemények4 4.1 

Felhívhatjuk a méret() a metódusa IterableUtils egy Iterálható objektumot, hogy megkapja a méretét.

return IterableUtils.size (adatok);

4.2. Iterables # size ()

Hasonlóképpen a Google Guava könyvtár a statikus segédprogramok gyűjteményét is tartalmazza Iterable osztály operálni Iterálható példányok.

Mielőtt elkezdenénk, be kell importálnunk a legújabb függőségeket a Maven Centralból:

     com.google.guava guava 25.0 

A statikus hívása méret() módszer a Iterable osztály megadja az elemek számát.

return Iterables.size (adatok);

A motorháztető alatt mindkettő IterableUtils és Iterable használja a 3.1. és a 3.2. pontban leírt megközelítések kombinációját a méret meghatározásához.

5. Következtetés

Ebben a cikkben megvizsgáltuk az an méretének különböző módjait Iterálható Java-ban.

A cikk és a vonatkozó tesztesetek forráskódja elérhető a GitHub oldalon.