Guava приведение HashBasedTable к TreeBasedTable - PullRequest
0 голосов
/ 25 апреля 2020

Я ищу класс приведения Есть ли эффективный способ сделать это?

1 Ответ

1 голос
/ 27 апреля 2020

Это две разные реализации для generi c Table и поэтому не могут быть просто разыграны (аналогично ArrayList и LinkedList, что не может быть первым случаем) другой).

Однако вы можете скопировать содержимое любой таблицы в новую, в вашем случае:

// Create sample HashBasedTable
Table<Integer, Integer, String> hashBasedTable = HashBasedTable.create();
hashBasedTable.put(1, 1, "eleven");
hashBasedTable.put(4, 2, "forty two");
hashBasedTable.put(2, 4, "twenty four");
hashBasedTable.put(1, 4, "fourteen");
  // {1={1=eleven, 4=fourteen}, 4={2=forty two}, 2={4=twenty four}}

// Create TreeBasedTable (with natural ordering, use `.create(Comparator, Comparator)` otherwise)
final TreeBasedTable<Comparable, Comparable, Object> treeBasedTable = TreeBasedTable.create();
treeBasedTable.putAll(hashBasedTable);
System.out.println(treeBasedTable);
  // {1={1=eleven, 4=fourteen}, 2={4=twenty four}, 4={2=forty two}}
...