Евгений Колесников 3 anni fa
parent
commit
5fadd0fc57
1 ha cambiato i file con 26 aggiunte e 16 eliminazioni
  1. 26 16
      articles/f6_demo_1.md

+ 26 - 16
articles/f6_demo_1.md

@@ -828,25 +828,35 @@ Activity используйте эту же самую
 
 ### Упорядочивание (сортировка) списка
 
-Для того, чтобы массив объектов (экземпляров какого-либо класса) можно было сортировать, класс должен реализовывать интерфейс **Comparable** и переопределить метод *compareTo*:
+>Для того, чтобы массив объектов (экземпляров какого-либо класса) можно было сортировать **по сложному условию**, класс должен реализовывать интерфейс **Comparable** и переопределить метод *compareTo*:
+>
+>```kt
+>data class ChatMessage(
+>    val chatId: String,
+>    val messageId: String,
+>    val creationDateTime: LocalDateTime
+>    // тут остальные поля
+>    ): Comparable<ChatMessage>
+>{
+>    override fun compareTo(other: ChatMessage): Int {
+>        return if(other.creationDateTime > this.creationDateTime) 1 else -1
+>    }
+>}
+>
+>...
+>
+>// после заполнения списка сообщений просто вызвать метод sort()
+>chatMessageList.sort()
+>```
 
-```kt
-data class ChatMessage(
-    val chatId: String,
-    val messageId: String,
-    val creationDateTime: LocalDateTime
-    // тут остальные поля
-    ): Comparable<ChatMessage>
-{
-    override fun compareTo(other: ChatMessage): Int {
-        return if(other.creationDateTime > this.creationDateTime) 1 else -1
-    }
-}
+Для сравнения простых свойств есть вариант проще:
 
-...
+```kt
+chatMessageList.sortBy(
+    item -> item.creationDateTime)
 
-// после заполнения списка сообщений просто вызвать метод sort()
-chatMessageList.sort()
+chatMessageList.sortByDescending(
+    item -> item.creationDateTime)
 ```
 
 ### Вывод даты перед группой сообщений