Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/10/2012, 02:17
jawir
 
Fecha de Ingreso: marzo-2009
Mensajes: 221
Antigüedad: 15 años, 1 mes
Puntos: 0
Ordenar HashMap por valor

Hola estoy intentando ordenar un Hashmap por valores, he encontrado un ejemplo por Internet pero me da un error de Casting.
Me da error en la línia:
TreeSet conjuntoOrdenado = new TreeSet(misMapValues);

El error es:
java.lang.RuntimeException: java.lang.ClassCastException


Código:
		HashMap vl_concepto = new HashMap();
			HashMap vl_conceptoAnadir = new HashMap();
			
			vl_concepto = (HashMap)vl_listaConceptos.get(index);
			
			vl_conceptoAnadir.put("cconcept", vl_concepto.get("mconpre_shcconcept"));
			vl_conceptoAnadir.put("dconcept", vl_concepto.get("mconpre_stdconcata"));
			vl_listaConceptosAnadir.add(vl_conceptoAnadir);

	HashMap mapResultado = new LinkedHashMap();
			
			List misMapKeys = new ArrayList(vl_conceptoAnadir.keySet());
			List misMapValues = new ArrayList(vl_conceptoAnadir.values());
			TreeSet conjuntoOrdenado = new TreeSet(misMapValues);
			
			Object[] arrayOrdenado = conjuntoOrdenado.toArray();
				
			int size = arrayOrdenado.length;
			
			for (int i=0; i<size; i++) 
			{
			mapResultado.put(misMapKeys.get(misMapValues.indexOf(arrayOrdenado[i])),arrayOrdenado[i]);
			}

			Iterator it1 = (Iterator) mapResultado.values().iterator();
			while (((java.util.Iterator) it1).hasNext()) {
			System.out.println((String)((java.util.Iterator) it1).next());
			}
Estoy probando pero no consigo arreglarlo, haber si alguien me echa un cable
Gracias