Dobivanje veličine iterativa u Javi

1. Pregled

U ovom brzom vodiču naučit ćemo o različitim načinima na koje možemo dobiti veličinu Iterativ na Javi.

2. Iterativ i Iterator

Iterativ je jedno od glavnih sučelja klasa kolekcija u Javi.

The Kolekcija sučelje se proširuje Iterativ a time i sve klase djece od Kolekcija također provesti Iterativ.

Iterativ ima samo jednu metodu koja daje Iterator:

javno sučelje Iterable {javni iterator iterator (); }

Ovaj Iterator tada se može koristiti za iteraciju preko elemenata u Iterativ.

3. Iterable veličina koristeći Core Java

3.1. za svakoga Petlja

Sve klase koje implementiraju Iterativ ispunjavaju uvjete za za svakoga petlja u Javi.

To nam omogućuje petlju po elementima u Iterativ dok povećavate brojač da biste dobili njegovu veličinu:

int brojač = 0; za (Objekt i: podaci) {brojač ++; } brojač povratka;

3.2. Collection.size ()

U većini slučajeva Iterativ bit će instanca Kolekcija, kao što su a Popis ili a Postavi.

U takvim slučajevima možemo provjeriti vrstu Iterativ i nazovite veličina() metoda na njemu da se dobije broj elemenata.

if (podaci instance Collection) {return ((Collection) data) .size (); }

Poziv na veličina() je obično puno brži od ponavljanja kroz cijelu zbirku.

Evo primjera koji pokazuje kombinaciju gornja dva rješenja:

javna statička veličina int (Iterable data) {if (data instanceof Collection) {return ((Collection) data) .size (); } int brojač = 0; za (Objekt i: podaci) {brojač ++; } brojač povratka; }

3.3. Stream.count ()

Ako koristimo Javu 8, možemo stvoriti Stream od Iterativ.

Zatim se objekt stream može koristiti za dobivanje broja elemenata u Iterativ.

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

4. Iterable Size pomoću biblioteka trećih strana

4.1. IterableUtils # size ()

The Zbirke Apache Commons knjižnica ima lijep IterableUtils klasa koja pruža statičke korisne metode za Iterativ instance.

Prije nego što započnemo, moramo iz Maven Central uvesti najnovije ovisnosti:

     org.apache.commons commons-collection4 4.1 

Možemo se pozvati na veličina() metoda IterableUtils na an Iterativ objekt kako bi dobio njegovu veličinu.

vratiti IterableUtils.size (podaci);

4.2. Interaktivne # veličine ()

Slično tome, Google Guava knjižnica također nudi zbirku statičkih korisnih metoda u svom Interables razred za operiranje Iterativ instance.

Prije nego što započnemo, moramo iz Maven Central uvesti najnovije ovisnosti:

     com.google.guava guava 25.0 

Pozivanje na statičko veličina() metoda na Interables razred nam daje broj elemenata.

vratiti Iterables.size (podaci);

Ispod haube, oboje IterableUtils i Interables upotrijebite kombinaciju pristupa opisanih u 3.1 i 3.2 za određivanje veličine.

5. Zaključak

U ovom smo članku pogledali različite načine dobivanja veličine datoteke Iterativ na Javi.

Izvorni kôd za ovaj članak i relevantni testovi dostupni su na GitHubu.