שילוב השוואות
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Kotlin של Coddy. שיעור 37 מתוך 63.
השתמשו ב־sortedWith כדי לספק משווה. compareBy<String> { it.length } משווה את אורכי המילים; שרשור .thenBy { it } משווה את המילה עצמה כאשר האורכים זהים. משתמשים במפתחות השוואה מאוחרים יותר רק כאשר כל המפתחות הקודמים זהים.
בתוך main:
val order = compareBy<String> { it.length }.thenBy { it }
println(listOf("bb", "a", "aa").sortedWith(order))האורך מציב את a במקום הראשון; ההשוואה האלפביתית שוברת את השוויון בין שתי המחרוזות בנות שני התווים.
thenBy שובר שוויון בלי להחליף את מפתח ההשוואה הקודם.
אתגר
בינוניהשלימו את wordOrder עם הפרמטרים words: List<String>. מיינו מילים באותיות ASCII קטנות לפי אורך עולה, ובמקרה של שוויון לפי סדר אלפביתי.
אלא אם צוין לעיל טווח מחמיר יותר, אוספים מכילים לכל היותר 100 איברים בכל רמה, וארגומנטים שלמים וערכים שלמים באוספים הם בטווח -1000 עד 1000. הטקסט שסופק לניתוח עשוי לכלול ייצוגים לא תקינים או מחוץ לטווח, כמתואר.
החזירו ערך מהטיפוס List<String>. השאירו את קוד הקלט/פלט שסופק. הוא קורא ארגומנטים סקלריים, אחד בכל שורה; רשימה מתחילה במספר האיברים שלה ואחריו האיברים, ומפה מתחילה במספר הרשומות שלה ואחריו כל מפתח וערך. ברשימות מקוננות, הפורמט של מספר האיברים והאיברים חוזר עבור כל שורה. ה-main שסופק מדפיס את הערך המוחזר ואחריו תו newline אחד. רשימות משתמשות בפורמט הסטנדרטי של Kotlin עם סוגריים מרובעים; אל תדפיסו תוויות נוספות.
נסו בעצמכם
fun wordOrder(words: List<String>): 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)
}
println(wordOrder(words))
}השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
4אוספים מקוננים
רשימות של רשימותמעבר על שורותסיכומים של שורותהשטחת רשימות מקוננותסיכום – שורות של מקומות ישיבה7צינורות עיבוד של אוספים
טרנספורמציה באמצעות Mapסינון ערכיםבדיקת כללי האוסףצבירה באמצעות Foldסיכום – סכומים מאושרים5פרויקט - ספר טלפונים
שמירת אנשי קשרחיפוש אנשי קשרתרגלו בעצמכם: Kotlin אונליין