java - Guava 的 HashBasedTable cellSet()

标签 java guava

我有以下设置。

Table<Integer, Integer, Float> store = HashBasedTable.create();

int i = 0, j = 0;

for (List<String> stack_i : stacks) {
  j = 0;

  for (String entry_j : stack_i) {
    Float alpha = doSomeMagic(entry_j, token);
    if (alpha != null)
      store.put(i, j, alpha);
    j++;
  }
  i++;
}

if (store.cellSet().size() > 0) {
  for (Table.Cell<Integer, Integer, Float> cell : store.cellSet()) {
    if (cell.getValue() > max) {
      max = cell.getValue();
      maxchainIndex = cell.getRowKey();
    }
  }
}

我遇到的问题是出现以下 JVM 错误:

SEVERE: java.lang.IllegalAccessError: tried to access method com.google.common.collect.Iterators.emptyModifiableIterator()Ljava/util/Iterator; from class com.google.common.collect.StandardTable$CellIterator at com.google.common.collect.StandardTable$CellIterator.(StandardTable.java:310) at com.google.common.collect.StandardTable$CellIterator.(StandardTable.java:306) at com.google.common.collect.StandardTable$CellSet.iterator(StandardTable.java:280)

错误发生在行

for(Table.Cell<Integer,Integer,Float> cell:store.cellSet())

我看不出我做错了什么。我查过,商店里至少有 1 件商品。

最佳答案

在我看来很好,我能够成功运行以下命令。您能否在没有任何其他元素的情况下运行它以消除与 for 循环无关的任何有趣业务?

Table<Integer, Integer, Double> abc = HashBasedTable.create();
abc.put(1, 1, 10d);
for (Table.Cell<Integer, Integer, Double> x : abc.cellSet()) {
    System.out.println(x.toString());
}

关于java - Guava 的 HashBasedTable cellSet(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12224747/

相关文章:

java - 如何在保持安全性的同时提供 XSLT 实用程序

java - Spring boot 中 SQL Server 的多种架构

java - 确保元素唯一性的队列?

intellij-idea - Guava 库不适用于 IntelliJ IDEA

guava - 从重叠范围创建 Guava ImmutableRangeSet

java - 在 Spring MVC 中生成路由的推荐方法是什么?

java - 如何复制数组或数组列表

java - Spring Security + AngularJS Ajax 帖子

java - 如何用 Streams 替换 Iterables.filter()?

java - 迭代映射并将其值放入 java 中