Has trabajado alguna vez con bases de datos? Cuando tu haces la consulta a la BDD (en SQL o como sea) ya le dices que tiene que ordenarse. Luego se añade a la lista tal y como te lo devuelve la consulta.
Supongamos que tengo una BD con notas de un curso, si yo le hago:
"Select * from notas order by nota DESC"
Te devolvería todas las notas del curso de mejor (mayor) a menor (descendiente). Si el resultado obtenido lo reflejas (inflas, llámalo como quieras) en una Lista (ListView), ya se refleja igual de ordenado que el resultado.
Para que te hagas una idea, la BD no debe estar ordenada, sino que es el resultado que obtienes lo que te la devuelve ordenada.
Si quieres profundizar mucho en el tema puedes revisar los "Vistas" de las BDD, que te permiten crear una tabla de apoyo y esta se crea en función a una llamada, que podría ser ordenada.
Un saludo.