2012-05-14 19 views
8

Tengo un¿Cómo ordenar guava multimap? (CLAVE = FECHA)

Multimap<Date,Invoice> multimap = ArrayListMultimap.create(); 

de guayaba. Me preguntaba cómo CLASIFICAR la tecla Fecha en el multimapa.

Actualmente, estoy haciendo esto:

 Iterator<Date> dateItr = multimap.keySet().iterator(); 
     Set<Date> treeSet = new TreeSet<Date>(Collections.reverseOrder()); 

y después me bucle a través del repetidor TreeSet. ¿Alguna idea de cómo evitar esta elusión?

+2

[TreeMultimap] (http://guava-libraries.googlecode.com/svn/tags/release03/javadoc/ com/google/common/collect/TreeMultimap.html) –

Respuesta

16

Miembro del equipo de Guava aquí.

Uso TreeMultimap, o si necesita asignar en List s, utilizar MultimapBuilder:

return MultimapBuilder.treeKeys().arrayListValues().build() 
+0

Probé tu código pero no puedo entender cómo construirlo con mis clases. – adhg

+0

Puede escribir la línea de código relacionada con KEY = Date y V = Invoice. ¡Gracias! – adhg

+0

Um. Reemplace la letra 'K' con' Fecha' y 'V' con' Factura', y eso funcionará. –