2012-05-14 22 views
8

Ho unCome ordinare guava multimap? (KEY = DATA)

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

da guava. Mi stavo chiedendo come SELEZIONARE il tasto Data nella multimap.

Attualmente, sto facendo questo:

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

e dopo ho scorrere l'iteratore TreeSet. Qualche idea su come evitare questa elusione?

+2

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

risposta

16

membro del team Guava qui.

Usa TreeMultimap, o se avete bisogno di mappare in List s, utilizzare MultimapBuilder:

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

Ho provato il tuo codice ma non riesco a capire come costruirlo con le mie classi. – adhg

+0

Puoi scrivere la riga di codice relativa a KEY = Date e V = Invoice. Grazie! – adhg

+0

Um. Sostituisci la lettera 'K' con' Date' e 'V' con' Invoice', e funzionerà. –