com.google.common.collect.Table 双键的Map
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: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();
}
/*** 学生 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:90oracle:c:95oracle:a:100*/
com.google.common.collect.Table 双键的Map相关推荐
- java hashbasedtable_Guava类库学习--Table(双键的Map)
Table是Guava提供的一个接口 Interface Table,由rowKey+columnKey+value组成 它有两个键,一个值,和一个n行三列的数据表类似,n行取决于Table对对象中存 ...
- Hive报错:Exception in thread main java.lang.Incom。。。。 Class com.google.common.collect.ImmutableSotil
Exception in thread "main" java.lang.IncompatibleClassChangeError: Class com.google.common ...
- com.google.common.collect.Range 集合计算
1.构造Range实例必须使用Range中的静态方法,因为Range的构造方法被设置为private,当a > b使,或者当a == b且为(a,b)时会抛出IllegalArgumentExc ...
- ClassNotFoundException: org.apache.flink.shaded.guava18.com.google.common.collect.Lists
如果报了这个错 1.看下你有没有flink.shaded.guava这个依赖,一般是在flink-streaming就有 2.如果你发现你有这个依赖,但是还是报ClassNotFoundExcepti ...
- redis存取list<T>,及bug:Failed to serialize object of type: class com.google.common.collect.Lists$Revers
Redis存取List 实体类必须序列化,对于redis这种nosql数据库,实例化很重要,很多文章也都介绍了必须实例化,在配置redisTemplate时也会配置序列化规则: <bean id ...
- com.google.common.collect.FluentIterable.concat
特此记录一下,此时此刻非常开心,困扰很久的问题终于解决了. 全部报错如下: Caused by: com.google.common.util.concurrent.ExecutionError: j ...
- 项目引入 swagger 启动报错处理(An attempt was made to call the method com.google.common.collect.FluentIterable)
背景介绍 我用的springboot框架,是用maven构建的项目,加入swagger依赖的时候启动的时候报错 报错信息: *************************** APPLICATIO ...
- 报错:com.google.common.collect.Sets$SetView.iterator()Lcom/google/common/collect/UnmodifiableIterator;
java项目报错:java.lang.NoSuchMethodError: com.google.common.collect.Sets$SetView.iterator()Lcom/google/c ...
- Package com.google.common.collect
This package contains generic collection interfaces and implementations, and other utilities for wor ...
最新文章
- matlab-等高线图-三维曲线的绘制
- docker 自定义网桥
- 常用的函数式接口_Consumer接口的默认方法andThen
- linux能装ps,在linux上使用ps(转载)
- 蓝翔改名变成“技院”了?网友评论炸了:我真的没想歪...
- linux 中文交互最好,与linux相交互 - wsdsb的个人空间 - OSCHINA - 中文开源技术交流社区...
- iOS ApplePay paymentData 加解密 (待续)
- 2022年中级网络工程师备考(网络知识部分)
- SharePoint可上传编辑但不能删除的权限设置
- 手机开发|USB调试时未弹出授权对话框
- mac android studio Waiting for application to come online解决方案
- Tuxera NTFS for Mac 2022新版本安装
- Linux hook系统调用open/read/write
- python恢复手机数据的软件_有什么万能的手机数据恢复软件吗?
- UILabel 文字描边详解
- LaTex 连字符多篇连续引用
- 金指拓客助力实体门店在短视频低成本精准拓客 打造同城私域号
- python删除数组特定元素_如何使用python从数组中删除特定元素
- app调用root权限,安卓app获取root权限
- 韩国何以成为电子竞技强国
热门文章
- python写自动脚本下载_如何使用python写自动化脚本?
- java call.invoke,关于_call.invoke 时出现错误,呼唤专家
- Unity3D 5 官方教程:地形设置
- Linux 系统结构详解,看这一篇就够了
- Invitation Cards——正反最短路
- JavaScript TypeScript学习总结
- This dependency was not found: * common/stylus/index.styl in ./src/main.js To install it, you can ru
- 用vs2019使用C#连接MySQL创建图书管理系统(1-7)源码集,未优化,未美化
- java爬虫之Jsoup入门
- rem 苏宁移动端案例