Tengo arraylist typeBeanArrayList donde el elemento es algo así como una fecha: por ejemplo:
[30-03-2012, 28-03-2013, 31-03-2012, 2-04-2012, ...]¿Cómo puedo ordenar en orden descendente?
Código:
typeBeanArrayList = database.getSingleCustomerDetail(c_id!!) //get data from SQlite database creditListAdapter = CreditListAdapter(typeBeanArrayList) rv_credit_list!!.adapter = creditListAdapter //Bind data in adapterGracias por adelantado...
Gracias @svkaka por la información.
Solo noté una línea de la respuesta de @svkaka: .sortByDescending { it.length } .
y cambio en mi código como:
typeBeanArrayList.sortByDescending{it.date}La clasificación funciona perfectamente.
Si tiene una lista de String que representan fechas, una forma de ordenarlas en orden descendente es:
val dates = listOf("30-03-2012", "28-03-2013", "31-03-2012", "2-04-2012") val dateTimeFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd-MM-yyyy") val result = dates.sortedByDescending { LocalDate.parse(it, dateTimeFormatter) } println(result)Esto imprimirá:
[28-03-2013, 2-04-2012, 31-03-2012, 30-03-2012] Tenga en cuenta que los métodos sortedByXXX devuelven una nueva lista, es decir, no se ordenan en su lugar
Puede usar algo como esto si está usando un modelo personalizado
typeBeanArrayList.sortedWith(compareByDescending<YourModel> { it.date() })