我创建了如下所示的数据结构,这是基于谷歌的guava表,它显示在下面
final Table<String, String, List<String>> values = HashBasedTable.create();
values.put("bon", "currency", Lists.newArrayList("ccdd","rode1","cwey","Certy"));
下面是我在迭代这个集合的方式
Map <String , List<String>>fmap = new HashMap < String , List<String>>();
for (Cell<String, String, List<String>> cell1: values.cellSet()){
if (cell1.getRowKey() != null && cell1.getRowKey().equalsIgnoreCase("bon") )
{
fmap.put(cell1.getColumnKey(), cell1.getValue());
}
}
现在我想修改我的条件,如果行键包含bon的值 并且列键包含这些值&#34; ccdd&#34;,&#34; rode1&#34;,&#34; cwey&#34;,&#34; Certy&#34;那么它应该填满地图 命名为fmap,使迭代贴图看起来像这样
Key Value
ccdd currency
rode1 currency
cwey currency
Certy currency
请告知如何实现这一目标 因为解决方案建议仍然无法正常工作
答案 0 :(得分:1)
而不是迭代Guava表中的所有值。尝试使用行键bon
获取行,然后遍历有效的列键以填充地图。
Map <String , List<String>>fmap = new HashMap < String , List<String>>();
List<String> validColumnKeys = Arrays.asList("ccdd","rode1","cwey","Certy");
Map<String, List<String>> row = values.row("bon");
for(String columnKey:validColumnKeys) {
fmap.put(columnKey, row.get(columnKey));
}