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.