example - map ordenado java
¿Cómo utilizar la interfaz SortedMap en Java? (5)
Puede usar TreeMap, que implementa internamente el SortedMap a continuación es el ejemplo
Clasificación por orden ascendente:
Map<Integer,String> ascsortedMAP = new TreeMap<Integer,String>();
ascsortedMAP.put(8, "name8");
ascsortedMAP.put(5, "name5");
ascsortedMAP.put(15, "name15");
ascsortedMAP.put(35, "name35");
ascsortedMAP.put(44, "name44");
ascsortedMAP.put(7, "name7");
ascsortedMAP.put(6, "name6");
for(Map.Entry<Integer, String> mapData : ascsortedMAP.entrySet()) {
System.out.println("Key : " +mapData.getKey()+ "Value : "+mapData.getValue());
}
Clasificación por orden descendente:
//Create the map and provide the comparator as a argument
Map<Integer,String> dscsortedMAP = new TreeMap<Integer,String>(new Comparator<Integer>()
{
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
dscsortedMAP.putAll(ascsortedMAP);
for(Map.Entry<Integer, String> mapData : dscsortedMAP.entrySet()) {
System.out.println("Key : " +mapData.getKey()+" Value : "+mapData.getValue());
}
Para obtener más información sobre SortedMAP, lea http://examples.javacodegeeks.com/core-java/util/treemap/java-sorted-map-example/
tengo un
Map<Float, MyObject>
¿Cuál es la mejor manera de mantener ordenado el mapa de acuerdo con el flotador?
¿Es SortedMap
la mejor respuesta? TreeMap
? ¿Como lo uso?
Solo creo el mapa una vez y sustituyo MyObject
frecuencia usando myMap.put()
y myMap.get()
.
TreeMap, que es una implementación de la interfaz SortedMap, funcionaría.
Como lo uso ?
Map<Float, MyObject> map = new TreeMap<Float, MyObject>();
Un TreeMap es probablemente la forma más sencilla de hacer esto. Lo usas exactamente como un mapa normal.
es decir
Map<Float,String> mySortedMap = new TreeMap<Float,MyObject>();
// Put some values in it
mySortedMap.put(1.0f,"One");
mySortedMap.put(0.0f,"Zero");
mySortedMap.put(3.0f,"Three");
// Iterate through it and it''ll be in order!
for(Map.Entry<Float,String> entry : mySortedMap.entrySet()) {
System.out.println(entry.getValue());
} // outputs Zero One Three
Vale la pena echar un vistazo a los documentos API, http://download.oracle.com/javase/6/docs/api/java/util/TreeMap.html para ver qué más puede hacer con eso.
Yo usaría TreeMap
, que implementa SortedMap
. Está diseñado exactamente para eso.
Ejemplo:
Map<Integer, String> map = new TreeMap<Integer, String>();
// Add Items to the TreeMap
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
// Iterate over them
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
Vea la página de tutorial de Java para SortedMap .
Y aquí una lista de tutoriales relacionados con TreeMap.
TreeMap
ordena por la clave de orden natural. Las claves deben implementar Comparable
o ser compatibles con un Comparator
(si pasaste una instancia al constructor). En su caso, Float
ya implementa Comparable
para que no tenga que hacer nada especial.
Puede llamar a keySet
para recuperar todas las teclas en orden ascendente.