使用索引值从HashBasedTable(Guava集合)中提取数据

时间:2015-04-27 10:55:46

标签: java collections guava

我有一个返回HashBasedTable的方法(来自Google的番石榴项目:https://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained#Table

我希望在创建后从表中提取值。

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
/**
 *
 * @author yschellekens
 */
public class StackOverflow {  

    /**
     *
     * @return
     */
    public static Table<Long, Long, String> getGeoTargeting()  {
         Table<Long, Long, String> weightedGraph = HashBasedTable.create();

         weightedGraph.put(999_99_9999L, 999_99_9999L, "blabla");
         return weightedGraph;
 }


   public static void main(String[] args) throws Exception {
     Table<Long, Long, String> weightedGraph = HashBasedTable.create();
       weightedGraph=getGeoTargeting();
      System.out.println(weightedGraph.isEmpty());
   }
}

输出:

run:
false
BUILD SUCCESSFUL (total time: 2 seconds) 

我的问题是:如何从表中提取单个元素,例如(允许我通过索引提取元素):

get(int index) //as in array list

而不是(这是Javadoc中Hashbasetable)唯一的get方法

get(Object rowKey, Object columnKey)
Returns the value corresponding to the given row and column keys, or null if no such mapping exists.

因为我想通过索引而不是值

来提取元素

提前致谢!

1 个答案:

答案 0 :(得分:1)

要将表中的所有值作为集合检索,请执行以下操作:

Collection values = weightedGraph.values()

要通过索引访问返回集合中的任何值,请执行以下操作:

new ArrayList(values).get(index);