המרות IntStream של Java

1. הקדמה

במדריך מהיר זה נעבור כל האפשרויות לגבי IntStream המרות לסוגים אחרים.

קריאות מעניינות אודות אגרוף או אי אגרוף או איטרציה מומלצות כהשלמה של מדריך זה.

2. IntStream ל מַעֲרָך

נתחיל לבחון כיצד אנו יכולים להמיר מ- IntStream התנגדות למערך של intס.

לצורך דוגמה זו, בואו ניצור את 50 המספרים הזוגיים הראשונים ונאחסן אותם במערך כתוצאה מכך:

@Test ציבורי בטל intStreamToArray () {int [] first50EvenNumbers = IntStream.iterate (0, i -> i + 2) .limit (50) .toArray (); assertThat (first50EvenNumbers) .hasSize (50); assertThat (first50EvenNumbers [2]). isEqualTo (4); }

ראשית, בואו ניצור זרם אינסופי של מספרים שלמים החל מ- 0 ואיתור זה על ידי הוספת 2 לכל אלמנט. מיד לאחר מכן, עלינו להוסיף פעולת ביניים לְהַגבִּיל על מנת לבצע פעולה זו, איכשהו, להסתיים.

לבסוף, בואו נשתמש בפעולת הסיום לאסוף לאסוף את זה זרם למערך.

זוהי דרך ישר לייצור מערך של intס.

3. IntStream ל רשימה

בואו נתגייר עכשיו an IntStream אל א רשימה שֶׁל שלמים.

במקרה זה, רק כדי להוסיף מגוון נוסף לדוגמא, בואו נשתמש בשיטה טווח במקום השיטה לְחַזֵר. שיטה זו תיצור IntStream מ ה int 0 ל int 50 (לא כלול מכיוון שמדובר בטווח פתוח):

@Test ציבורי בטל intStreamToList () {רשימה first50IntegerNumbers = IntStream.range (0, 50) .boxed () .collect (Collectors.toList ()); assertThat (first50IntegerNumbers) .hasSize (50); assertThat (first50IntegerNumbers.get (2)). isEqualTo (2); }

בדוגמה זו אנו משתמשים בשיטה טווח. החלק הכי ידוע לשמצה כאן הוא השימוש השיטה מוסגר, שכפי ששמו מציין, יתאגר את כל ה int אלמנטים ב IntStream ויחזיר א זרם.

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

4. IntStream ל חוּט

לנושא האחרון שלנו, בואו לחקור כיצד נוכל להגיע א חוּט מ- IntStream.

במקרה זה, ניצור רק את 3 הראשונים ints (0, 1 ו -2):

@Test ציבורי בטל intStreamToString () {String first3numbers = IntStream.of (0, 1, 2) .mapToObj (String :: valueOf) .collect (Collectors.joining (",", "[", "]")); assertThat (first3numbers) .isEqualTo ("[0, 1, 2]"); }

ראשית, במקרה זה אנו בונים IntStream עם הקונסטרוקטור IntStream.of (). אחרי שיש את זרםאנחנו צריכים איכשהו ליצור זרם מ- IntStream. מכאן, אנחנו יכול להשתמש ביניים mapToObj שיטה שייקח IntStream ויחזיר א זרם מסוג האובייקט שנוצר הממופה בשיטה שנקראת.

לבסוף, אנו משתמשים באספן הִצטָרְפוּת שלוקח a זרם ויכול לצרף כל אלמנט של ה- זרם על ידי שימוש במפריד, ובאופציה קידומת וסיומת.

5. מסקנות

במדריך מהיר זה, בדקנו את כל החלופות כשאנחנו צריכים להמיר IntStream לכל סוג אחר. בפרט עברנו דוגמאות כמו יצירת מערך, א רשימה, ו חוּט.

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


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