2012-05-14 12 views
8

Ich habe einenWie man Guava Multimap sortiert? (KEY = DATE)

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

von Guave. Ich habe mich gefragt, wie man den Date-Schlüssel in der Multimap sortieren soll.

Derzeit Ich tue dies:

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

und später ich Schleife durch den Iterator TreeSet. Irgendeine Idee, wie man diese Umgehung vermeidet?

+2

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

Antwort

16

Guava-Teammitglied hier.

Verwenden TreeMultimap, oder wenn Sie in List s zur Karte benötigen, verwenden MultimapBuilder:

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

Ich habe versucht, Ihren Code, aber ich kann es nicht herausfinden, wie es mit meinen Klassen zu konstruieren. – adhg

+0

Können Sie bitte die Codezeile schreiben, die sich auf KEY = Date und V = Invoice bezieht. Vielen Dank! – adhg

+0

Um. Ersetzen Sie den Buchstaben "K" durch "Date" und "V" durch "Invoice", und das wird funktionieren. –

Verwandte Themen