Betrachten Sie dieses Beispiel, das einige Gerätetyp-Statistiken ausgibt. („Device“ ist eine Enumeration mit dozenish Werten.)Einfachste Möglichkeit, ein Multiset in der Reihenfolge der Elementhäufigkeit zu durchlaufen?
Multiset<DeviceType> histogram = getDeviceStats();
for (DeviceType type : histogram.elementSet()) {
System.out.println(type + ": " + histogram.count(type));
}
Was ist die einfachste, elegante Weise, die verschiedene Elemente in der Reihenfolge ihrer Häufigkeit (häufigste Art zuerst) zu drucken?
Mit einem kurzen Blick auf die Multiset
Schnittstelle, gibt es keine fertige Methode hierfür, und keiner von Multiset
Implementierungen des Guava (HashMultiset
, TreeMultiset
usw.) scheinen automatisch Elemente zu halten frequenz bestellt entweder.
https://code.google.com/p/guava-libraries/issues/detail?id=356 – Bozho