Získanie veľkosti Iterable v Jave
1. Prehľad
V tomto rýchlom výučbe sa dozvieme o rôznych spôsoboch, ako môžeme získať veľkosť súboru Iterable v Jave.
2. Iterovateľné a Iterátor
Iterable je jedným z hlavných rozhraní tried zbierky v Jave.
The Zbierka rozhranie sa rozširuje Iterable a teda všetky podradené triedy Zbierka tiež realizovať Iterable.
Iterable má iba jednu metódu, ktorá vytvára Iterátor:
verejné rozhranie Iterable {public Iterator iterator (); }
Toto Iterátor potom možno použiť na iteráciu prvkov v súbore Iterable.
3. Iterovateľná veľkosť pomocou jadra Java
3.1. pre každý Slučka
Všetky triedy, ktoré implementujú Iterable majú nárok na pre každý slučka v Jave.
To nám umožňuje prechádzať cez prvky v Iterable pri zvyšovaní počítadla na získanie jeho veľkosti:
int counter = 0; pre (Objekt i: data) {counter ++; } počítadlo vrátenia;
3.2. Collection.size ()
Vo väčšine prípadov Iterable bude inštanciou Zbierka, ako napríklad a Zoznam alebo a Nastaviť.
V takýchto prípadoch môžeme skontrolovať typ Iterable a zavolaj veľkosť () metóda na to získať počet prvkov.
if (data instanceof Collection) {return ((Collection) data) .size (); }
Výzva na veľkosť () je zvyčajne oveľa rýchlejší ako iterácia v celej zbierke.
Tu je príklad ukazujúci kombináciu vyššie uvedených dvoch riešení:
public static int size (Iterable data) {if (data instanceof Collection) {return ((Collection) data) .size (); } int počitadlo = 0; pre (Objekt i: data) {counter ++; } počítadlo vrátenia; }
3.3. Stream.count ()
Ak používame Java 8, môžeme vytvoriť Prúd z Iterable.
Objekt prúdu potom možno použiť na získanie počtu prvkov v prvku Iterable.
vrátiť StreamSupport.stream (data.spliterator (), false) .count ();
4. Iterovateľná veľkosť pomocou knižníc tretích strán
4.1. IterableUtils # size ()
The Zbierky Apache Commons knižnica má pekný IterableUtils trieda, ktorá poskytuje statické úžitkové metódy pre Iterable inštancie.
Než začneme, musíme importovať najnovšie závislosti z Maven Central:
org.apache.commons commons-collections4 4.1
Môžeme vyvolať veľkosť () metóda IterableUtils na Iterable objekt získať jeho veľkosť.
vrátiť IterableUtils.size (údaje);
4.2. Iterables # size ()
Podobne Google Guava Knižnica tiež poskytuje zbierku statických úžitkových metód vo svojom Iterables triedy operovať Iterable inštancie.
Než začneme, musíme importovať najnovšie závislosti z Maven Central:
com.google.guava guava 25.0
Vyvolanie statiky veľkosť () metóda na Iterables trieda nám dáva počet prvkov.
vrátiť Iterables.size (údaje);
Pod kapotou obe IterableUtils a Iterables na stanovenie veľkosti použite kombináciu prístupov popísaných v bodoch 3.1 a 3.2.
5. Záver
V tomto článku sme sa zaoberali rôznymi spôsobmi, ako získať veľkosť súboru Iterable v Jave.
Zdrojový kód tohto článku a príslušné testovacie prípady sú k dispozícii na stránkach GitHub.