¿Cómo puedo ordenar una lista de directorios según el nombre, el tamaño y la última modificación?

Solo estoy tratando de averiguar cómo puedo ordenar una lista de directorios según su nombre, la última vez que se modificó y el tamaño. Sé que puede acceder al nombre y tamaño del archivo, que se modificó por última vez con los métodos de Archivo, pero no estoy seguro de cómo ordenarlos. Si alguien me puede orientar en la dirección correcta sería genial.

public void printDirectoryContents(String path, PrintWriter writer)
{
    File[] list = root.listFiles();
    Arrays.sort(list);

    for ( File f : list )
    {           
        String name = f.getName();
        long lastmod = f.lastModified();
        SimpleDateFormat simple = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
        String formatted = simple.format(new Date(lastmod));
        long length = f.length();

    }
}

Respuestas a la pregunta(6)

Su respuesta a la pregunta