Java如何对multimap vs进行排序?

时间:2012-11-24 12:43:41

标签: java sorting arraylist multimap

我使用Guava multimap来存储来自文本文件的数据。 文本文件数据格式如下:

p1 10
p2 30
p3 40
p1 20
p2 50
p3 60
..
..

第一列是键,第二列是值。我想将得分(值)从最高到最低排序,但不知道如何对多图表进行排序。 或者是否有更好的存储来存储这类数据?

我还想到了另外两件事,即两个arraylist,一个是名字,另一个是分数,不过

我不知道可以链接两个列表。

list1 = {p1,p2,p3}
list2 = {10, 20, 30, 40, 50, 60}

p1指数指向10和20.这种事情可能吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情: -

 public static ImmutableMultimap<Integer, MyObject> indexOnScore(Iterable<MyObject> i) {
  List<MyObject> sorted = Ordering.natural().onResultOf(myObjectToScore())
  .sortedCopy(i);
   return Multimaps.index(sorted, myObjectToScore());
}

另一种选择可能是创建TreeMultimap并使用Ordering.arbitrary()作为值的比较器。