Sắp xếp theo khóa
Thuộc phần Logic và luồng chương trình trong hành trình Kotlin của Coddy. Bài học 36 trên 63.
sortedBy tính khóa so sánh cho từng phần tử và trả về một danh sách mới được sắp xếp theo khóa tăng dần. sortedByDescending đảo ngược thứ tự khóa. Các khóa bằng nhau vẫn giữ nguyên thứ tự tương đối ban đầu vì thuật toán sắp xếp của Kotlin ổn định.
Bên trong main:
println(listOf("pear", "a", "kiwi", "to").sortedBy { it.length })Các từ được sắp xếp theo độ dài; pear vẫn đứng trước kiwi vì chúng có độ dài bằng nhau.
sortedBy giữ nguyên thứ tự ban đầu giữa các phần tử có khóa bằng nhau.
Thử thách
Trung bìnhHoàn thiện shortWordsFirst với tham số words: List<String>. Trả về các từ theo thứ tự độ dài tăng dần. Giữ nguyên thứ tự ban đầu nếu các từ có độ dài bằng nhau.
Trừ khi giới hạn chặt hơn được nêu ở trên, các tập hợp chứa tối đa 100 phần tử ở mỗi cấp, còn đối số số nguyên và giá trị số nguyên trong tập hợp nằm trong khoảng từ -1000 đến 1000. Văn bản dùng để phân tích có thể chứa các biểu diễn không hợp lệ hoặc nằm ngoài phạm vi như đã mô tả.
Trả về giá trị thuộc kiểu List<String>. Giữ nguyên code đầu vào/đầu ra đã cung cấp. Code này đọc mỗi đối số đơn lẻ trên một dòng; danh sách bắt đầu bằng số lượng phần tử rồi đến các phần tử, còn bản đồ bắt đầu bằng số lượng mục rồi đến từng khóa và giá trị. Danh sách lồng nhau lặp lại định dạng số lượng phần tử rồi đến các phần tử cho mỗi hàng. main đã cung cấp sẽ in giá trị trả về rồi đến một ký tự xuống dòng. Danh sách sử dụng định dạng chuẩn có dấu ngoặc vuông của Kotlin; không in thêm nhãn.
Tự làm thử
fun shortWordsFirst(words: List<String>): List<String> {
// Viết lời giải của bạn tại đây.
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(shortWordsFirst(words))
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
4Các tập hợp lồng nhau
Danh sách các danh sáchDuyệt qua các hàngTóm tắt từng hàngLàm phẳng danh sách lồng nhauÔn tập: Các hàng ghế8Sắp xếp và nhóm
Sắp xếp theo khóaKết hợp các phép so sánhNhóm các giá trịLiên kết theo khóaÔn tập: bảng xếp hạng theo độ dài3Tập hợp và phép kiểm tra thành viên
Tạo tập hợpCập nhật tập hợpCác phép toán trên tập hợpKiểm tra tập conÔn tập: Khách mời sự kiện6Giá trị hàm
Viết biểu thức lambdaCác kiểu hàmTruyền hàmBiến được captureÔn tập: Điểm số có thể tùy chỉnh9Luồng điều khiển nâng cao
Mệnh đề bảo vệThoát khỏi vòng lặp có nhãnTiếp tục vòng lặp có nhãnHàm đệ quyÔn tập: hàng hợp lệ đầu tiênTự luyện tập: Playground Kotlin