עדכון מפות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 3 מתוך 63.
mutableMapOf מאפשרת להוסיף ולהחליף רשומות באמצעות השמה בסוגריים מרובעים. remove(key) מוחקת רשומה אם היא קיימת. val יכול להפנות למפה הניתנת לשינוי: ההפניה נשארת קבועה בזמן שהתוכן שלה משתנה.
בתוך main:
val counts = mutableMapOf("a" to 2)
counts["a"] = 5
counts["b"] = 3
println(counts.size)עדכון a משנה את הערך שלו; הוספת b מוסיפה את המפתח השני.
השמה בסוגריים מרובעים מוסיפה מפתח חסר או מחליפה את הערך של מפתח קיים.
אתגר
בינוניהשלימו את updatedStock עם הפרמטרים stock: Map<String, Int>, key: String, amount: Int. העתיקו את stock למפה שניתנת לשינוי, הגדירו את המפתח המבוקש לערך amount והחזירו את מספר המפתחות החדש.
אלא אם צוינו למעלה גבולות מחמירים יותר, האוספים מכילים לכל היותר 100 איברים בכל רמה, והארגומנטים מסוג מספר שלם והערכים מסוג מספר שלם באוספים הם בטווח שבין -1000 ל-1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מסוג Int. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. רשימות מקוננות חוזרות על התבנית של מספר איברים ואחריו איברים עבור כל שורה. הפונקציה main שסופקה מדפיסה את הערך המוחזר ואחריו תו שורה חדשה אחד. רשימות משתמשות בתבנית הסטנדרטית של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun updatedStock(stock: Map<String, Int>, key: String, amount: Int): Int {
// כתבו כאן את הפתרון שלכם.
return 0
}
fun main() {
val stockCount = readln().toInt()
val stock = mutableMapOf<String, Int>()
for (i0 in 0 until stockCount) {
val stockKey = readln()
val stockValue = readln().toInt()
stock[stockKey] = stockValue
}
val key = readLine().orEmpty()
val amount = readln().toInt()
println(updatedStock(stock, key, amount))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין