#25 Kotlin Koans Collections/Sort 해설
1 소개
Kotlin 공식 레퍼런스의 Kotlin Koans Collections/Sort의 해설 기사입니다.
Kotlin Koans를 통해 Kotlin을 배우는 사람들의 도움이 되길 바랍니다.
다만, 레퍼런스를 자력으로 읽는 힘을 기르고 싶은 분은,
곧이 기사를 보지 마십시오!
한 번 각자로 도전하고 나서, 눈에 띄게 된다고 생각합니다
2 sorted()/sortedBy()
sorted() : 함수의 호출 원래의 콜렉션의 요소를 50 음순(알파벳순)으로 재 배열해 돌려준다.
(※1문자째가 공통의 요소가 있으면 2문자째로 판단한다.)
sortedBy() : 함수에 건네주는 인수(selector)의 반환값의 결과에 응해, 함수의 호출 원래의 콜렉션의 요소를 재정렬해 돌려준다.
(※sort()와 달리, 50음순과는 무관.)
kotlin koans의 예를 인용합니다.
listOf("bbb", "a", "cc").sorted() == listOf("a", "bbb", "cc")
listOf("bbb", "a", "cc").sortedBy { it.length } == listOf("a", "cc", "bbb")
3 Collections/Sort 해설
Kotlin Koans Collections/Sort의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement Shop.getCustomersSortedByNumberOfOrders() using sorted or sortedBy.
listOf("bbb", "a", "cc").sorted() == listOf("a", "bbb", "cc")
listOf("bbb", "a", "cc").sortedBy { it.length } == listOf("a", "cc", "bbb")
Sort// Return a list of customers, sorted by the ascending number of orders they made
fun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = TODO()
각 클래스의 속성은 다음과 같습니다.
Shop 클래스: name(String형), customers(List< Customer >형)
Customer 클래스: name(String형), city(City형), orders(List< Order >형)
Shop.getCustomersSortedByNumberOfOrders(): List<Customer>
를 호출하여,
Shop 프로퍼티 customers의 요소(Customer형 인스턴스)의 oreders(Order가 요소의 List)의 요소수가 적은 순서로 나열된 List를 돌려주도록(듯이) 구현합니다.
List의 요소 수를 나타내는 데 size
속성을 사용합니다.
따라서 구현하는 코드는 다음과 같습니다.
Sortfun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = customers.sortedBy{ it.orders.size }
4 마지막으로
다음은 Kotlin Koans Collections/Sum의 해설을 하겠습니다
Reference
이 문제에 관하여(#25 Kotlin Koans Collections/Sort 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/b10f9227471bef37fdfb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
sorted() : 함수의 호출 원래의 콜렉션의 요소를 50 음순(알파벳순)으로 재 배열해 돌려준다.
(※1문자째가 공통의 요소가 있으면 2문자째로 판단한다.)
sortedBy() : 함수에 건네주는 인수(selector)의 반환값의 결과에 응해, 함수의 호출 원래의 콜렉션의 요소를 재정렬해 돌려준다.
(※sort()와 달리, 50음순과는 무관.)
kotlin koans의 예를 인용합니다.
listOf("bbb", "a", "cc").sorted() == listOf("a", "bbb", "cc")
listOf("bbb", "a", "cc").sortedBy { it.length } == listOf("a", "cc", "bbb")
3 Collections/Sort 해설
Kotlin Koans Collections/Sort의 해설입니다.
수시로 본 사이트의 내용을 인용하겠습니다.
본문과 코드를 살펴보자.
Implement Shop.getCustomersSortedByNumberOfOrders() using sorted or sortedBy.
listOf("bbb", "a", "cc").sorted() == listOf("a", "bbb", "cc")
listOf("bbb", "a", "cc").sortedBy { it.length } == listOf("a", "cc", "bbb")
Sort// Return a list of customers, sorted by the ascending number of orders they made
fun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = TODO()
각 클래스의 속성은 다음과 같습니다.
Shop 클래스: name(String형), customers(List< Customer >형)
Customer 클래스: name(String형), city(City형), orders(List< Order >형)
Shop.getCustomersSortedByNumberOfOrders(): List<Customer>
를 호출하여,
Shop 프로퍼티 customers의 요소(Customer형 인스턴스)의 oreders(Order가 요소의 List)의 요소수가 적은 순서로 나열된 List를 돌려주도록(듯이) 구현합니다.
List의 요소 수를 나타내는 데 size
속성을 사용합니다.
따라서 구현하는 코드는 다음과 같습니다.
Sortfun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = customers.sortedBy{ it.orders.size }
4 마지막으로
다음은 Kotlin Koans Collections/Sum의 해설을 하겠습니다
Reference
이 문제에 관하여(#25 Kotlin Koans Collections/Sort 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/G-o/items/b10f9227471bef37fdfb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
listOf("bbb", "a", "cc").sorted() == listOf("a", "bbb", "cc")
listOf("bbb", "a", "cc").sortedBy { it.length } == listOf("a", "cc", "bbb")
// Return a list of customers, sorted by the ascending number of orders they made
fun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = TODO()
fun Shop.getCustomersSortedByNumberOfOrders(): List<Customer> = customers.sortedBy{ it.orders.size }
다음은 Kotlin Koans Collections/Sum의 해설을 하겠습니다
Reference
이 문제에 관하여(#25 Kotlin Koans Collections/Sort 해설), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/G-o/items/b10f9227471bef37fdfb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)