מצא סכום וממוצע במערך ג'אווה

1. הקדמה

במדריך מהיר זה, נסקור כיצד אנו יכולים לחשב סכום וממוצע במערך באמצעות לולאות תקן של Java ו- זרם ממשק API.

2. מצא את סכום האלמנטים במערך

2.1. סכום באמצעות א ל לוּלָאָה

על מנת למצוא את סכום כל האלמנטים במערך, אנחנו יכולים פשוט לחזור על המערך ולהוסיף כל אלמנט ל- a סְכוּם מצטברמִשְׁתַנֶה.

זה פשוט מאוד מתחיל עם סְכוּם של 0 והוסף כל פריט במערך תוך כדי:

ציבורי סטטי ציבורי int findSumWithoutUsingStream (מערך int []) {int sum = 0; עבור (ערך int: מערך) {sum + = value; } סכום החזר; }

2.2. סכום עם ממשק ה- API של Java Stream

אנו יכולים להשתמש ב- API של Stream להשגת אותה תוצאה:

public static int findSumUsingStream (int [] array) {return Arrays.stream (array) .sum (); }

חשוב לדעת כי ה סְכוּם() השיטה תומכת רק בזרמים פרימיטיביים.

אם אנחנו רוצים להשתמש בזרם על תיבה מספר שלם ערך, עלינו להמיר תחילה את הזרם ל- IntStream משתמש ב mapToInt שיטה.

לאחר מכן, אנו יכולים להחיל את סְכוּם() שיטה שהוסבנו לאחרונה IntStream:

ציבורי int findSumUsingStream (מערך שלם [] סטטי ציבורי) {Return Arrays.stream (array) .mapToInt (Integer :: intValue) .sum (); }

אתה יכול לקרוא הרבה יותר על ממשק ה- API כאן.

3. מצא ממוצע במערך Java

3.1. ממוצע ללא ממשק ה- API של Stream

ברגע שנדע לחשב את סכום רכיבי המערך, מציאת הממוצע היא די קלה - כמו ממוצע = סכום האלמנטים / מספר האלמנטים:

פעמיים FindAverageWithoutUsingStream (מערך int []) סטטי ציבורי {int sum = findSumWithoutUsingStream (array); להחזיר (כפול) סכום / מערך.אורך; }

הערות:

  1. מחלקים int על ידי אחר int מחזירה int תוֹצָאָה. כדי לקבל ממוצע מדויק, אנחנו מלהקים תחילה סְכוּם ל לְהַכפִּיל.
  2. ג'אווה מַעֲרָך יש אורך שדה המאחסן את מספר האלמנטים במערך.

3.2. ממוצע באמצעות Java Stream API

כפול FindAverageUsingStream (מערך int []) סטטי ציבורי {return Arrays.stream (array) .average (). orElse (Double.NaN); }

IntStream.average () מחזירה אופציונלי כפול שאולי לא מכיל ערך ושצריך טיפול מיוחד.

קרא עוד אודות אופציות במאמר זה ועל אופציונלי כפול בכיתה בתיעוד Java 8.

4. מסקנה

במאמר זה בחנו כיצד למצוא סכום / ממוצע של int אלמנטים במערך.

כמו תמיד, הקוד זמין ב- Github.


$config[zx-auto] not found$config[zx-overlay] not found