三维数组—— 与宝玉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:mydocumentmyexel2.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/
注意用了网上的代码要写注释哦
当然其他代码你页最好都写上注释

原文地址:https://www.cnblogs.com/juking/p/4832411.html