oitathi
#1
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);
}
}
oitathi
#2
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));
}
}
}