guava之TableTable双键的 map rowKey+columnKey+value 以学车成绩表来举例 成绩表 方法: 所有的行数据:cellSet(); 所有的学生:rowKeySet(); 所有的课程:columnKeySet(); 所有的成绩:values(); 学生对应的课程和成绩:rowMap();课程为键 或者row(学生) 课程对应的学生和成绩:columnMap();学生为键 或者column(课程) 示例程序 public static void main(String[] args) {
Table<String, String, Integer> table=HashBasedTable.create();
table.put("黎明", "javase", 80);
table.put("黎明", "oracle", 100);
table.put("郭富城", "javase", 90);
table.put("刘德华", "oracle", 95);
Set<Cell<String, String, Integer>> cells=table.cellSet(); //每行来输出
for(Cell<String, String, Integer> c:cells)
System.out.println(c.getRowKey()+"----->"+c.getColumnKey()+"----->"+c.getValue());
System.out.println("=================学生对应的课程成绩====================");
System.out.print("学生\t"); //得到装着学生的set再输出
Set<String> stus=table.rowKeySet(); for(String temp:stus)
System.out.print(temp+"\t");
System.out.println(); //得到课程的set
Set<String> courses=table.columnKeySet(); for(String c:courses){
System.out.print(c+"\t"); //获得学生和成绩得map,学生为键
Map<String, Integer> scores=table.column(c); for(String stu:stus)
System.out.print(scores.get(stu)+"\t");
System.out.println();
} //原理同上
System.out.println("==================课程对应的学生成绩===================");
System.out.print("课程\t"); Set<String> coures2=table.columnKeySet(); for(String temp:coures2)
System.out.print(temp+"\t");
System.out.println();
Set<String> stus2=table.rowKeySet(); for(String s:stus2){
System.out.print(s+"\t"); Map<String, Integer> scores=table.row(s); for(String c:coures2)
System.out.print(scores.get(c)+"\t");
System.out.println();
}
}
作者:乙木真人 链接:https://www.jianshu.com/p/fefb8d842d3b 来源:简书 简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
|