HashBasedTable(双键Map)
双键数据结构类型,底层由LinkedHashMap实现,官方定义可以将两个Key分别示意为rowKey和columnKey,且提供了按rowKey获取或者按columnKey获取的API,注意无论是rowKey、columnKey还是value都不能为null值。
HashBasedTable实际上本身也是HashMap<R, HashMap<C,V>>的结构,因此,rowKey的查找性能要高于columnKey的查找。
public static void table() {
HashBasedTable<String, String, String> table = HashBasedTable.create();
// put操作
table.put("研发部", "张三", "20");
table.put("研发部", "李四", "21");
table.put("产品部", "王五", "22");
table.put("销售部", "赵六", "23");
table.put("行政部", "小明", "24");
// 按rowKey和columnKey获取value
String value = table.get("研发部", "张三");
// 输出结果:20
System.out.println(value);
// 按columnKey获取,rowKey和value就分别为Map中的Key和Value
Map<String, String> columnKey = table.column("张三");
// 输出结果:{研发部=20}
System.out.println(columnKey);
// 按rowKey获取,columnKey和value就分别为Map中的Key和Value
Map<String, String> rowKey = table.row("研发部");
// 输出结果:{张三=20, 李四=21}
System.out.println(rowKey);
// 以column为Key,转成原始的Map套Map的格式
Map<String, Map<String, String>> toColumnMap = table.columnMap();
// 输出结果:{张三={研发部=20}, 李四={研发部=21}, 王五={产品部=22}, 赵六={销售部=23}, 小明={行政部=24}}
System.out.println(toColumnMap);
// 以row为Key,转成原始的Map套Map的格式
Map<String, Map<String, String>> toRowMap = table.rowMap();

最低0.47元/天 解锁文章
408

被折叠的 条评论
为什么被折叠?



