三维数组—— 与宝玉QQ群交流 之三
鞠老师 12:50:34
A[excel文件名][excel.sheet][sheet.行][sheet.列] 构成四维数组
计131-张振渊 12:51:54
a[1][0][0][3]?
鞠老师 12:52:58
第二页呢
宝玉 12:53:12
第二页第二行
计131-张振渊 12:54:30
额……让我找一张草稿纸
鞠老师 12:55:25
第二个文件 则第一个下标为1
其第二页,则第二个下标为1
其第二行,则第三个下标为1
其第4列(D),则第四个下标为3
故a[1][1][1][3]
计131-张振渊 12:56:03
原来如此
宝玉 12:56:11
没关系,这个理解需要一点时间,可以把之前的聊天记录重头看看
仔细想想
宝玉 12:56:37
计131-张振渊 再给你个题目
计131-张振渊 12:56:43
行
宝玉 12:56:56
如果是5维数组,你用刚才的方式类比一下
宝玉 12:57:03
其他同学也踊跃参与呀
宝玉 12:57:19
我之所以只计131-张振渊 是因为就看到他答复了
鞠老师 12:57:43
欢迎其他同学踊跃参加! 一起 hi 起来
计131-张振渊 12:57:57
两个文件夹,每个文件夹里有两个excel,每个表格里有两页工作表。这样对么?
宝玉 12:58:07
计131 曹磊(1181314856) 12:58:10
老师其实我们都在认真的看,只是不知道如何进行互动
宝玉 12:58:35
发言就是互动了 计131 曹磊
计132-刘乙宏(1007481574) 12:59:06
还在消化前面的讨论
宝玉 12:59:18
那我们再考虑下6维数组,还有谁可以类比下? all
宝玉 12:59:36
刚才张振渊的文件夹类比很好
计131 曹磊(1181314856) 13:00:04
宝玉 还在消化一维,二维,三维的呢
宝玉 13:00:21
没关系,慢慢来
宝玉 13:00:29
另外你们可以多相互交流
计131 曹磊(1181314856) 13:00:52
好的
鞠老师 13:00:54
例如,还可以增加一个维度(用户维度),构成6维数组
这样的话,可以理解为什么要设计多维数组
宝玉 13:01:50
如果理解了前面类别的五位数组,6维数组也可以继续类比
鞠老师 13:02:27
大家 有疑问可以提出来 一起讨论
宝玉 13:02:36
嗯,文件夹之上还可以是磁盘:C盘、D盘
计132林 杰(413356855) 13:03:19
两个教室,每个教室两台电脑,每台电脑两个文件夹,每个文件夹两个excel,每个excel两个表格。编不下去了
宝玉 13:03:26
c:\mydocument\myexel2.xlsx
宝玉 13:03:54
计132林 杰 你这个类比很好,不过你能帮我算一下你到几维了吗?
宝玉 13:05:18
补充说明一下Excel的页的概念,怕有的同学还不知道
计132林 杰(413356855) 13:07:05
我说得没带上页,应该算6维吧,我猜###宝玉
宝玉 13:07:28
没关系,我们一起来数一下
鞠老师 13:08:14
计132林 杰 A[教室号][电脑号][文件夹号][excel文件号][页号][行号][列号] ---》 简化后就是:
A[i][j][k][l][m][n][o]
宝玉 13:08:49
答案呼之欲出了
宝玉 13:08:51
“多个教室,每个教室多台电脑,每台电脑多个文件夹,每个文件夹多个excel,每个excel多个页,每个页多列,每列多行”
计131 曹磊(1181314856) 13:09:47
宝玉 13:09:57
计132林 杰 你是对的,去掉页就是6维
鞠老师 13:10:42
计132林 杰 假设excel 只有一页,就可以去掉页号
宝玉 13:10:43
计131-张振渊 我觉得类比几维空间反而犯晕
因为三维以后你就不好想象了
宝玉 13:11:31
再回头看鞠老师的说明:
三维数组 本质上是一个空间结构! (x,y,z)描述了空间的一个点(数据);
a[i][j][k] 描述了存放在位置(i,j,k)的一个数据
宝玉 13:11:40
这才是本质
宝玉 13:12:02
学过数据库吗?
计132林 杰(413356855) 13:12:07
恩
计131-张振渊 13:12:14
学过的
宝玉 13:12:18
数据库也是很好的例子
宝玉 13:12:40
我们假设数据表是二维的:行、列
宝玉 13:12:48
那么你举个三维的例子看看
鞠老师 13:15:06
数据库表格一般如下定义:
Table(a,b,c,...) ; a,b,... 是其中的属性
宝玉 13:15:41
对,比如students表
鞠老师 13:15:43
表格隶属于某个数据库
宝玉 13:15:59
students有id和name字段
计131-张振渊 13:16:01
所以三位就是两张表咯
计132林 杰(413356855) 13:16:08
老师说过,关系必须规范化,表中不能包含表
宝玉 13:16:19
数据库学的不错
宝玉 13:16:37
如果我们有三张表呢?
计131-张振渊 13:17:06
还是三维。
宝玉 13:17:14
对的
宝玉 13:17:34
所以和你具体数量无关,你一张表,还是三维的:[表][行][列]
宝玉 13:17:48
如果四维举例呢?
计131-张振渊 13:18:43
这……得找个什么东西把表打包起来吧。
宝玉 13:19:02
哈哈,前面###鞠老师已经提示了
宝玉 13:19:28
不过这说明你已经初步理解了多维数组的概念了
宝玉 13:19:41
- "鞠老师 00:15:43
表格隶属于某个数据库
计131-张振渊 13:20:06
哦,多几个数据库啊。
宝玉 13:20:15
对的
宝玉 13:20:38
我再提个问题
宝玉 13:22:06
假如我们已经读取到Excel的数据到一个数组了:
b[0][0] = A1
b[0][1] = B1
b[0][2] = C1
b[1][0] = A2
b[1][1] = B2
b[1][2] = C2
宝玉 13:22:34
怎么赋值给a[][][]这个三维数组?
宝玉 13:23:03
读取到数据后的数组是b[][]
宝玉 13:23:16
写出(伪)代码
宝玉 13:24:15
因为解答了这个问题,你们第一次的作业其实就有更好的答案了
宝玉 13:24:40
你们可以回去改进下你们第一次代码
宝玉 13:25:13
读取CSV的代码也有[参考]:http://www.mkyong.com/java/how-to-read-and-parse-csv-file-in-java/
注意用了网上的代码要写注释哦
当然其他代码你页最好都写上注释