我使用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.这种事情可能吗?
答案 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()
作为值的比较器。