首页 > 其他分享 >com.google.common.collect.Table 双键的Map

com.google.common.collect.Table 双键的Map

时间:2022-08-15 09:45:03浏览次数:83  
标签:Map google tables System collect println out

com.google.common.collect.Table 存放的数据,以2个键(rowKey+columnKey)一个值的形式,提供了以下方法:

cellSet()

rowKeySet()

columnKeySet()

values()

以下是以学生课程实例代码:

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;
 
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:90
   c:oracle:95
   a:oracle:100
   a: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();
}
/**
 * 学生	javase	oracle	
    b	90	null	
    c	null	95	
    a	80	100
 */
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();
}
/**
 * 课程		b	c	a	
   javase	90	null	80	
   oracle	null	95      100
 */
 
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:90
    oracle:c:95
    oracle:a:100
 */

  转自:(1条消息) com.google.common.collect.Table 双键的Map_woshimyc的博客-CSDN博客_com.google.common.collect.table

标签:Map,google,tables,System,collect,println,out
From: https://www.cnblogs.com/wwssgg/p/16587152.html

相关文章

  • 【Java】List排序方法(包括对象、Map等内部排序实现)
    前言日常开发中经常会对List集合做排序操作,JDK为我们提供了强大的排序方法,可以针对对象、Map、基本类型等进行正/倒排序操作。参考博客:JAVA列表排序方法sort和reversed......
  • 前端处理 input 元素的 files 属性时报错【m.map is not a function】
    问题描述在使用HTML的文件上传元素<inputtype="file">时,处理其返回的files数据时遇到了这个报错m.mapisnotafunction。我的代码如下:constuploadCSVFiles=even......
  • map和解构
    Map:<script>//创建map的两种方式varmap1=newMap;//无参,空的mapconsole.log(map1);//Map(0) {size:0}vararr=[[1,2],......
  • HashMap的一些底层知识点
    HashMap的底层数据结构?数字+链表+红黑树HashMap的存取原理?①.判断键值对数组table[i]是否为空或为null,否则执行resize()进行扩容;②.根据键值key计算hash值得到插入......
  • MapReduce入门实战
    MapReduce思想MapReduce是Google提出的一个软件架构,用于大规模数据集的并行运算。概率“Map(映射)”和“Reduce(归约)”以及它们的思想都是从函数式编程语言借鉴的,还有......
  • 阅读笔记: Map-Based Precision Vehicle Localization in Urban Environments
    摘要结合了GPS、IMU、轮速计和LiDAR数据,生成高精度的环境地图。使用了与近期的SLAM方法类似的offlinerelaxation技术,把地图在相交区域和自我重叠区域进行对齐。通过把最......
  • 图片系列(6)不同版本上 Bitmap 内存分配与回收原理对比
    请点赞关注,你的支持对我意义重大。......
  • Spring MVC组件之HandlerMapping
    SpringMVC组件之HandlerMappingHandlerMapping概述HandlerMapping组件的作用解析一个个Request请求,并找到相应处理这个Request的Handler。Handler一般可以理解为Control......
  • DFS记忆化搜索--Divider & Conquer + Hashmap(数字三角形)
    记忆化搜索是DP的一种实现方式,等价于动态规划一个经典的例子:数字三角形给定一个三角形triangle,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相......
  • HashMap-有效的数独
    问题描述:判断一个9x9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可:数字1-9在每一行只能出现一次。数字1-9在每一列只能出现一次。数字......