Ordenar iteração

Como eu posso ordenar essa iteração? Quero ordenar as Strings da iteração em ordem alfabética

public void ListarUfs(){
	Set ufs = props.keySet(); // um objeto Properties
        Iterator itr = ufs.iterator(); 
	String str;
	while(itr.hasNext()) { 
		str = (String) itr.next(); //gostaria de ordenar essas Strings em ordem alfabética
		System.out.println(str); 
	} 
}

Eu fiz desse jeito:


public void ListarUfs(){
		Set ufs = props.keySet();
		List<String> listaUfs = new ArrayList<String>();
		Iterator itr = ufs.iterator(); 
		String str;
		while(itr.hasNext()) { 
		  str = (String) itr.next(); 
		  listaUfs.add(str);
		} 
		Collections.sort(listaUfs);
	}
	

Mas será que não tem um jeito mais ‘limpo’?

import java.util.Properties;
import java.util.SortedSet;
import java.util.Set;
import java.util.TreeSet;
import java.io.IOException;
import java.io.InputStream;
import java.io.FileInputStream;

class ListarPropertiesAlfabeticamente {
    public static void main (String[] args) throws IOException {
		Properties prop = new Properties();
		InputStream fr = new FileInputStream (args[0]);
		prop.load (fr);
		fr.close();
		SortedSet<String> orderedKeys = new TreeSet<String>();
		orderedKeys.addAll ((Set)prop.keySet());
		for (String key : orderedKeys) {
			System.out.printf ("%s=%s%n", key, prop.getProperty (key));
		}
	}
}