mon.collect.Table 存放的数据,以2个键(rowKey+columnKey)一个值的形式,提供了以下方法:
cellSet()
rowKeySet()
columnKeySet()
values()
以下是以学生课程实例代码:
import java.util.Map;import java.util.Set;import mon.collect.HashBasedTable;import mon.collect.Table;import mon.collect.Table.Cell;import mon.collect.Tables;Table<String,String,Integer> tables = HashBasedTable.create();//测试数据tables.put("a", "javase", 80);tables.put("b", "javase", 90);tables.put("a", "oracle", 100);tables.put("c", "oracle", 95);//所有的行数据Set<Cell<String,String,Integer>> cells = tables.cellSet();for(Cell<String,String,Integer> temp:cells){System.out.println(temp.getRowKey()+":"+temp.getColumnKey()+":"+temp.getValue());}/*** b:javase:90c:oracle:95a:oracle:100a:javase:80*/System.out.println("==========学生查看成绩==============");System.out.print("学生\t");//所有的课程Set<String> cours = tables.columnKeySet();for(String t:cours){System.out.print(t+"\t");}System.out.println();//所有的学生Set<String> stus = tables.rowKeySet();for(String stu:stus){System.out.print(stu+"\t");Map<String,Integer> scores = tables.row(stu);for(String c:cours){System.out.print(scores.get(c)+"\t");}System.out.println();}/*** 学生javaseoracleb90nullcnull95a80100*/System.out.println("==========课程查看成绩==============");System.out.print("课程\t");//所有的学生Set<String> stuSet = tables.rowKeySet();for(String t:stuSet){System.out.print(t+"\t");}System.out.println();//所有的课程Set<String> courSet = tables.columnKeySet();for(String c:courSet){System.out.print(c+"\t");Map<String,Integer> scores = tables.column(c);for(String s:stuSet){System.out.print(scores.get(s)+"\t");}System.out.println();}/*** 课程bcajavase90null80oraclenull95100*/System.out.println("===========转换===========");Table<String,String,Integer> tables2 = Tables.transpose(tables);//所有的行数据Set<Cell<String,String,Integer>> cells2 = tables2.cellSet();for(Cell<String,String,Integer> temp:cells2){System.out.println(temp.getRowKey()+":"+temp.getColumnKey()+":"+temp.getValue());}/*** javase:b:90oracle:c:95oracle:a:100*/