Como posso classificar uma listagem de diretório de acordo com o nome, tamanho e a última modificação?

Eu só estou tentando descobrir como eu posso classificar uma listagem de diretório de acordo com seu nome, hora da última modificação e tamanho. Eu sei que você pode acessar o nome do arquivo, tamanho, modificado pela última vez com os métodos File, mas não tenho certeza sobre como classificá-lo. Se alguém pode me apontar na direção certa, seria ótimo.

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();

    }
}

questionAnswers(6)

yourAnswerToTheQuestion