קבלת גודל של Iterable בג'אווה

1. סקירה כללית

במדריך מהיר זה נלמד על הדרכים השונות בהן אנו יכולים לקבל את גודל ה- ניתן לנידון בג'אווה.

2. Iterable ו- Iterator

ניתן לנידון הוא אחד הממשקים העיקריים של שיעורי האוסף בג'אווה.

ה אוסף ממשק מתארך ניתן לנידון ומכאן כל כיתות הילדים של אוסף גם ליישם ניתן לנידון.

ניתן לנידון יש רק שיטה אחת שמייצרת איטרטור:

ממשק ציבורי Iterable {iterator public Iterator (); }

זֶה איטרטור לאחר מכן ניתן להשתמש בו כדי לחזור על האלמנטים ב- ניתן לנידון.

3. גודל נידף באמצעות Java Core

3.1. לכל אחד לוּלָאָה

כל השיעורים שמיישמים ניתן לנידון זכאים ל לכל אחד לולאה בג'אווה.

זה מאפשר לנו לולאה על האלמנטים ב- ניתן לנידון תוך הגדלת דלפק כדי לקבל את גודלו:

מונה int = 0; עבור (אובייקט i: נתונים) {counter ++; } דלפק החזרה;

3.2. Collection.size ()

ברוב המקרים, ניתן לנידון יהיה מופע של אוסף, כגון א רשימה או א מַעֲרֶכֶת.

במקרים כאלה אנו יכולים לבדוק את סוג ה- ניתן לנידון ולהתקשר גודל() שיטה עליו כדי לקבל את מספר האלמנטים.

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

הקריאה ל גודל() הוא בדרך כלל הרבה יותר מהיר מאשר לחזור על האוסף כולו.

להלן דוגמה המציגה את השילוב בין שני הפתרונות לעיל:

גודל אינטלי סטטי ציבורי (נתונים ניתנים לניתוח) {if (data instance of Collection) {return ((Collection) data). size (); } מונה int = 0; עבור (אובייקט i: נתונים) {counter ++; } דלפק החזרה; }

3.3. Stream.count ()

אם אנו משתמשים ב- Java 8, אנו יכולים ליצור זרם מ ה ניתן לניתוח.

לאחר מכן ניתן להשתמש באובייקט הזרם כדי לקבל את ספירת האלמנטים ב- ניתן לנידון.

להחזיר את StreamSupport.stream (data.spliterator (), false) .count ();

4. גודל ניתן לנידוק באמצעות ספריות צד שלישי

4.1. IterableUtils # size ()

ה אוספי Apache Commons לספרייה יש נחמד IterableUtils מחלקה המספקת שיטות שימוש סטטי עבור ניתן לנידון מקרים.

לפני שנתחיל, עלינו לייבא את התלות האחרונות מ Maven Central:

     org.apache.commons commons-collection4 4.1 

אנחנו יכולים להפעיל את גודל() שיטה של IterableUtils על ניתן לנידון התנגד לקבל את גודלו.

להחזיר IterableUtils.size (נתונים);

4.2. פריטים מספר גודל ()

באופן דומה, ה גויאבה של גוגל הספרייה מספקת גם אוסף של שיטות שימוש סטטיות בתוכנה שרטוטים בכיתה לניתוח ניתן לנידון מקרים.

לפני שנתחיל, עלינו לייבא את התלות האחרונות מ Maven Central:

     com.google.guava גויאבה 25.0 

הפעלת הסטטי גודל() שיטה על שרטוטים הכיתה נותנת לנו את מספר האלמנטים.

החזר Iterables.size (נתונים);

מתחת למכסה המנוע, שניהם IterableUtils ו שרטוטים השתמש בשילוב הגישות המתוארות ב- 3.1 ו- 3.2 כדי לקבוע את הגודל.

5. מסקנה

במאמר זה בדקנו דרכים שונות לקבל גודל של ניתן לנידון בג'אווה.

קוד המקור של מאמר זה ומקרי הבדיקה הרלוונטיים זמינים באתר GitHub.