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.