קיבוץ ערכים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 38 מתוך 63.
groupBy מחזירה מפה שהמפתחות שלה נוצרים על ידי למבדה והערכים שלה הם רשימות של איברים תואמים. כל קבוצה שומרת על הסדר המקורי של האיברים שבה. גישה לקבוצה חסרה מחזירה null, כמו בחיפושים אחרים במפה.
בתוך main:
val groups = listOf("a", "to", "b").groupBy { it.length }
println(groups[1])הקבוצה של המילים באורך אחד מכילה את a ואת b בסדר המקורי שלהן.
groupBy שומרת כל איבר תואם ברשימה עבור המפתח שחושב לו.
אתגר
בינוניהשלימו את wordsOfLength עם הפרמטרים words: List<String>, length: Int. קבצו את המילים לפי אורך, ואז החזירו את הקבוצה המבוקשת בסדר המקורי. אם הקבוצה אינה קיימת, החזירו רשימה ריקה.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים שלמים וערכים שלמים באוספים הם בין -1000 ל-1000. טקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג List<String>. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על תבנית המספר והאיברים עבור כל שורה. ה-main שסופקה מדפיסה את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בפורמט הסוגריים המרובעים הסטנדרטי של Kotlin; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun wordsOfLength(words: List<String>, length: Int): List<String> {
// כתבו כאן את הפתרון שלכם.
return emptyList()
}
fun main() {
val wordsCount = readln().toInt()
val words = mutableListOf<String>()
for (i0 in 0 until wordsCount) {
val wordsItem = readLine().orEmpty()
words.add(wordsItem)
}
val length = readln().toInt()
println(wordsOfLength(words, length))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין