Table——高淇JAVA300讲笔记之Guava
案例一:学生成绩表格的行和列转换
1 package com.bjsxt.others.guava; 2 3 import java.util.Map; 4 import java.util.Set; 5 6 import com.google.common.collect.HashBasedTable; 7 import com.google.common.collect.Table; 8 import com.google.common.collect.Tables; 9 import com.google.common.collect.Table.Cell; 10 11 /** 12 * 双键的Map --> Table -->rowKey+columnKey+value 13 * 1、方法 14 * 所有的行数据:cellSet() 15 * 所有的学生:rowKeySet() 16 * 所有的课程:columnKeySet() 17 * 所有的成绩:values() 18 * 学生对应的课程:rowMap() + get(学生) 19 * row(学生) 20 * 课程对应的学生:columnMap + get(课程) 21 * column(课程) 22 * 23 */ 24 public class Demo08 { 25 public static void main(String[] args) { 26 Table<String,String,Integer> tables = HashBasedTable.create(); 27 //测试数据 28 tables.put("a","javase",80); 29 tables.put("b","javase",90); 30 tables.put("a", "oracle", 100); 31 tables.put("c", "oracle", 95); 32 33 //所有的行数据 34 Set<Cell<String,String,Integer>> cells = tables.cellSet(); 35 for(Cell<String,String,Integer> temp:cells) { 36 System.out.println(temp.getRowKey()+"-->"+temp.getColumnKey()+"-->"+temp.getValue()); 37 } 38 39 System.out.println("=============学生查看成绩====================="); 40 System.out.print("学生\t"); 41 //所有的课程 42 Set<String> cours = tables.columnKeySet(); 43 for(String t:cours) { 44 System.out.print(t+"\t"); 45 } 46 System.out.println(); 47 //所有的学生 48 Set<String> stus = tables.rowKeySet(); 49 for(String stu:stus) { 50 System.out.print(stu+"\t"); 51 Map<String,Integer> scores = tables.row(stu); 52 for(String c:cours) { 53 System.out.print(scores.get(c)+"\t"); 54 } 55 System.out.println(); 56 } 57 58 System.out.println("=============课程查看成绩====================="); 59 System.out.print("课程\t"); 60 //所有的学生 61 Set<String> stuSet = tables.rowKeySet(); 62 for(String t:stuSet) { 63 System.out.print(t+"\t"); 64 } 65 System.out.println(); 66 //所有的课程 67 Set<String> courseSet = tables.columnKeySet(); 68 for(String c:courseSet) { 69 System.out.print(c+"\t"); 70 Map<String,Integer> scores = tables.column(c); 71 for(String s:stuSet) { 72 System.out.print(scores.get(s)+"\t"); 73 } 74 System.out.println(); 75 } 76 System.out.println("===========转换=============="); 77 Table<String,String,Integer> tables2 = Tables.transpose(tables); 78 //所有的行数据 79 Set<Cell<String,String,Integer>> cells2 = tables2.cellSet(); 80 for(Cell<String,String,Integer> temp:cells2) { 81 System.out.println(temp.getRowKey()+"-->"+temp.getColumnKey()+"-->"+temp.getValue()); 82 } 83 84 } 85 }
运行结果:
a-->javase-->80 a-->oracle-->100 b-->javase-->90 c-->oracle-->95 =============学生查看成绩===================== 学生 javase oracle a 80 100 b 90 null c null 95 =============课程查看成绩===================== 课程 a b c javase 80 90 null oracle 100 null 95 ===========转换============== javase-->a-->80 oracle-->a-->100 javase-->b-->90 oracle-->c-->95
转载于:https://www.cnblogs.com/swimminglover/p/8367682.html
Table——高淇JAVA300讲笔记之Guava相关推荐
- commons的Predicate和Transformer——高淇JAVA300讲笔记之commons
案例一:Predicate 断言 1 package com.bjsxt.others.commons; 2 3 import java.util.ArrayList; 4 import java.u ...
- 【133天】尚学堂高淇Java300集视频精华笔记(71-72)
第71集:常用类/file类/打印目录树状结构/递归算法 课堂代码 package com.test071;import java.io.File;public class Test071 {publ ...
- 【138天】尚学堂高淇Java300集视频精华笔记(84)
第84集:太阳系模型/基本类的封装/Star类的建立 本集知识点 将对象尽可能的抽象,可以有效减少代码量,比如此例中的Star类 package com.test084_087_solar;impor ...
- 【135天】尚学堂高淇Java300集视频精华笔记(74-76)
第74-75集:异常机制.trycatchfinallyreturn执行顺序.捕获异常.声明异常throw.方法重写中异常的处理.手动抛出异常 异常的处理办法一:捕获异常 try try语句指定了一段 ...
- 【131天】尚学堂高淇Java300集视频精华笔记(65-66)
第65集:常用类Date类的使用JDk源码分析 Date时间类(java.util.Date) 在标准Java类库中包含一个Date类.它的对象表示一个特定的瞬间,精确到毫秒. Date()分配一个D ...
- 【147天】尚学堂高淇Java300集视频精华笔记(108-109)
第108集:容器equals和hashcodeJDK源代码分析 本集知识点 Java中规定,若两个对象equals比较后内容相等(为true),则hashCode必须相等,反之不然.[原因见内存分析图 ...
- 【153天】尚学堂高淇Java300集视频精华笔记(122-123)
叨叨两句(2017.7.8) 我现在发现我太适合当程序员了,稍微懂点知识后想法就一堆一堆的,哈哈. 今天敲下面这个冒泡排序时感觉太特么好了.原来学编程最快乐的事情就是懂了一些知识后,把它变成可以在电脑 ...
- java高淇_高淇java300集JAVA常用类作业
一.选择题 1. 以下选项中关于int和Integer的说法错误的是( B D).(选择二项) A.int是基本数据类型,Integer是int的包装类,是引用数据类型 B.int的默认值是0,Int ...
- Linux高并发服务器开发---笔记1(环境搭建、系统编程、多进程)
0613 第4章 项目制作与技能提升 4.0 视频课链接 4.1 项目介绍与环境搭建 4.1.1 项目介绍 4.1.2 开发环境搭建 ①安装Linux系统.XSHELL.XFTP.Visual Stu ...
最新文章
- EntityFramework Code-First 简易教程(三)-------数据库初始化
- [补档][中山市选2011]杀人游戏
- 我在富士康挨踢了七年(八.出国Support)
- java并发排序_Java并发(三):重排序
- 程序员求职的六大禁忌,你中招了吗?
- python入门--字符串,切片
- mysql数据库连接地址utf8_在Python中连接到MySQL数据库时UTF8不工作
- C程序员要学C++吗?
- mysql 查询 投影,MySql-连接查询
- Windows Store App 图像
- 计算机应用word作业,《计算机应用基础》作业
- [转]Kali-linux安装之后的简单设置
- linux 查看http连接等
- python交通调查数据处理_python数据分析--关于时间类型数据处理的一种方法
- 即时语音提示软件php,即时语音提示校对工具
- request.getParameter()与request.getParameterValues()
- Linux 网页挂马实验,网页挂马常见漏洞分析与检测
- 微信小程序:凑单满减计算神器
- 微信小程序用地理编码做地图标注
- WinMerge 过滤器的使用方法
热门文章
- python编程从入门到实践答案-《Python编程:从入门到实践》第五章 if语句 习题答案...
- python读数据-如何用Python读取开放数据?
- python表白对话框-python tkinter-消息框、对话框、文件对话框
- python3-Python3.7.0官方版
- python3最新版本-Python3第三方组件最新版本追踪实现
- python多久学会自学-零基础自学Python多久可以找工作?
- python游戏编程入门书籍推荐-Python游戏编程入门3
- python3.8.5怎么用-Python 3.8 新功能大揭秘【新手必学】
- 脚本编程语言python语言-python语言是脚本语言吗
- python循环语句-python循环语句