arr[0] = Name(id=122, title="title0")
arr[1] = Name(id=123, title="title1")
arr[2] = Name(id=124, title="title2")
......
Necesito ordenarlo con la siguiente matriz
arrRef[0] = "title2"
arrRef[1] = "title0"
arrRef[2] = "title1"
Resultado:
arr[0] = Name(id=124, title="title2")
arr[1] = Name(id=122, title="title0")
arr[2] = Name(id=123, title="title1")
......
En Java lo hacemos como
Collections.sort(arrRef, Comparator.comparing(s -> arr[arrRef.indexOf(s)]));
Si su lista de nombres es muy larga, debe aplicar el hash del título a su índice, ya que la invocación repetida list.indexOf(value)
tiene un rendimiento deficiente para listas largas.
val names = arrayListOf(
Name(122, "title0"),
Name(123, "title1"),
Name(124, "title2")
)
val titles = listOf(
"title2",
"title0",
"title1"
)
val hash = titles.withIndex().associateTo(HashMap()) { it.value to it.index }
names.sortBy { hash[it.title] }
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras