De grootte van een iterabel verkrijgen in Java

1. Overzicht

In deze korte tutorial leren we over de verschillende manieren waarop we de grootte van een Herhaalbaar in Java.

2. Iterable en Iterator

Herhaalbaar is een van de belangrijkste interfaces van de collectieklassen in Java.

De Verzameling interface breidt zich uit Herhaalbaar en dus alle kindklassen van Verzameling ook implementeren Herhaalbaar.

Herhaalbaar heeft slechts één methode die een Iterator:

openbare interface Iterable {openbare Iterator iterator (); }

Dit Iterator kan vervolgens worden gebruikt om de elementen in het Herhaalbaar.

3. Herhaalbare grootte met behulp van Core Java

3.1. voor elk Lus

Alle klassen die implementeren Herhaalbaar komen in aanmerking voor de voor elk lus in Java.

Hierdoor kunnen we de elementen in de Herhaalbaar terwijl u een teller verhoogt om de grootte te krijgen:

int teller = 0; voor (Object i: data) {teller ++; } retourteller;

3.2. Collectie.size ()

In de meeste gevallen is het Herhaalbaar zal een instantie zijn van Verzameling, zoals een Lijst of een Set.

In dergelijke gevallen kunnen we het type Herhaalbaar en bel grootte() methode erop om het aantal elementen te krijgen.

if (data instanceof Collection) {return ((Collection) data) .size (); }

De oproep naar grootte() is meestal veel sneller dan het doorlopen van de hele collectie.

Hier is een voorbeeld dat de combinatie van de bovenstaande twee oplossingen laat zien:

public static int size (Iterable data) {if (data instanceof Collection) {return ((Collection) data) .size (); } int counter = 0; voor (Object i: data) {teller ++; } retourteller; }

3.3. Stream.count ()

Als we Java 8 gebruiken, kunnen we een Stroom van de Herhaalbaar.

Het stream-object kan vervolgens worden gebruikt om het aantal elementen in het Herhaalbaar.

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

4. Herhaalbare grootte met bibliotheken van derden

4.1. IterableUtils # size ()

De Apache Commons-collecties bibliotheek heeft een mooie IterableUtils klasse die statische hulpprogramma-methoden biedt voor Herhaalbaar gevallen.

Voordat we beginnen, moeten we de nieuwste afhankelijkheden importeren vanuit Maven Central:

     org.apache.commons commons-collections4 4.1 

We kunnen een beroep doen op de grootte() methode van IterableUtils op een Herhaalbaar object om de grootte te krijgen.

retourneer IterableUtils.size (gegevens);

4.2. Iterables # maat ()

Evenzo is het Google Guava bibliotheek biedt ook een verzameling statische hulpprogramma-methoden in zijn Iterables klasse om op te opereren Herhaalbaar gevallen.

Voordat we beginnen, moeten we de nieuwste afhankelijkheden importeren vanuit Maven Central:

     com.google.guava guave 25.0 

Het aanroepen van de static grootte() methode op de Iterables class geeft ons het aantal elementen.

return Iterables.size (data);

Onder de motorkap, beide IterableUtils en Iterables gebruik de combinatie van benaderingen beschreven in 3.1 en 3.2 om de grootte te bepalen.

5. Conclusie

In dit artikel hebben we gekeken naar verschillende manieren om de grootte van een Herhaalbaar in Java.

De broncode voor dit artikel en de relevante testcases zijn beschikbaar op GitHub.