java guava 的实用功能练习_制作一个简单的学生,课程,成绩的对应表格

package guava只读函数式编程过滤转换约束集合;

import java.util.Map;
import java.util.Set;

import com.google.common.collect.HashBasedTable;
import com.google.common.collect.Table;
import com.google.common.collect.Table.Cell;
import com.google.common.collect.Tables;

/**

  • 双键的Map–>Table rowKey行键+columnkey列键
  • 如表格: 学生A(key) java课程(key) 成绩80分(值values)
  •           学生B(key) java课程(key)   成绩90分(值values)
    
  •  1.方法
    
  •  	所有的行数据:cellSet()
    
  •  	所有的学生:rowKeySet()不可重复
    
  •  	所有的课程:columnkeSet()可重复
    
  •  	所有的成绩:values()可重复
    
  •  	学生对应的课程:RowKey()+get(学生)或者使用row(学生)
    
  •  	课程对应的学生:columnkey+get(课程)或者column(课程)
    

*/
public class Demo08 {
public static void main(String[] args) {
Table<String, String,Integer> tables = HashBasedTable.create();//create创造
//测试数据
tables.put(“张三”, “英语”, 80);
tables.put(“李四”, “英语”, 85);
tables.put(“王五”, “语文”, 90);
tables.put(“赵强”, “语文”, 100);
//查看所有的行数据
Set<Cell<String,String,Integer>> cells = tables.cellSet();
//使用增强for循环或者迭代器
for(Cell<String,String,Integer> temp:cells){
System.out.println(temp.getRowKey()+"–>"+temp.getColumnKey()+"–>"+temp.getValue());
}
System.out.println(“通过学生查看每门课成绩=================”);
//学生 + 课程+课程 即学生对应课程
System.out.print(“学生\t”);
Set cours = tables.columnKeySet();
for(String temp:cours){
System.out.print(temp+"\t");
}
System.out.println();
//每一个学生每一门课即学生对应成绩
Set stus = tables.rowKeySet();
for(String s:stus){
System.out.print(s+"\t");
//对应的课程 这里使用row(学生)
Map<String, Integer> scores = tables.row(s);//s返回的是Map;scores考试成绩
for(String c:cours){
System.out.print(scores.get©+"\t");
}
System.out.println();
}
System.out.println(“通过课程查看学生成绩=================”);
System.out.print(“课程\t”);
//所有的学生
Set student = tables.rowKeySet();//student学生
for(String temp:student){
System.out.print(temp+"\t");
}
System.out.println();
//所有的课程
Set course = tables.columnKeySet();//course课程
for(String c:course){
System.out.print(c+"\t");
//对应的课程 这里使用row(学生)
Map<String, Integer> scores = tables.column©;//s返回的是Map;scores考试成绩
for(String s:student){
System.out.print(scores.get(s)+"\t");
}
System.out.println();
}
System.out.println(“转换成另一种表格与最上面格式互换=================”);
Table<String, String,Integer> tables1 = Tables.transpose(tables);//tables表格
//查看所有的行数据
Set<Cell<String,String,Integer>> cells1 = tables1.cellSet();
//使用增强for循环或者迭代器
for(Cell<String,String,Integer> temp:cells1){
System.out.println(temp.getRowKey()+"–>"+temp.getColumnKey()+"–>"+temp.getValue());
}
}
}
//结果-------------------------------------------------------
李四–>英语–>85
张三–>英语–>80
赵强–>语文–>100
王五–>语文–>90
通过学生查看每门课成绩=================
学生 英语 语文
李四 85 null
张三 80 null
赵强 null 100
王五 null 90
通过课程查看学生成绩=================
课程 李四 张三 赵强 王五
英语 85 80 null null
语文 null null 100 90
转换成另一种表格与最上面格式互换======
英语–>李四–>85
英语–>张三–>80
语文–>赵强–>100
语文–>王五–>90

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值