קבלת גודל של 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.