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.


$config[zx-auto] not found$config[zx-overlay] not found