1

値をテーブル形式で保存するためにグアバテーブルを使用することを計画しています。表の値に基づいて降順のソートを実行する関数を知りたいのですが...これについていくつかの見解を投げていただけませんか。ありがとうございました。

4

1 に答える 1

6

マップの場合と同様に、をコピーしcellSet()、セルを値で並べ替えてから、順序を保持するに配置する必要がありImmutableTableます。

Ordering<Table.Cell<String, String, Integer>> comparator =
  new Ordering<Table.Cell<String, String, Integer>>() {
    public int compare(
        Table.Cell<String, String, Integer> cell1, 
        Table.Cell<String, String, Integer> cell2) {
      return cell1.getValue().compareTo(cell2.getValue());
  }
};
// That orders cells in increasing order of value, but we want decreasing order...
ImmutableTable.Builder<String, String, Integer>
    sortedBuilder = ImmutableTable.builder(); // preserves insertion order
for (Table.Cell<String, String, Integer> cell :
    comparator.reverse().sortedCopy(table.cellSet())) {
  sortedBuilder.put(cell);
}
return sortedBuilder.build();

とにかく、これは多かれ少なかれ、マップを値でソートするために作成するコードです。

于 2012-07-28T08:28:28.120 に答える