黑马程序员技术交流社区

标题: 有关数组的深思 [打印本页]

作者: 周斌    时间: 2012-7-29 03:46
标题: 有关数组的深思
本帖最后由 周斌 于 2012-11-7 12:10 编辑

学二维数组的时候
我明白了二维数组是一组对一维数组的引用
也就是说每一个二维数组的元素分别指向了一个一维数组
那我就想到了
如果我创建一个一维数组数组
把它的元素类型定义为二维数组类型
是不是这个一维数组就能存放二维数组的引用
那如果可以的话,是不是就实现了多为数组啊
反正我知道游戏里面用到多维数组的地方不少
一般都通过逻辑实现多维
就是把二维的数组分层处理
然后再分组处理
然后再分块处理
如果我上面的想法成立的话,是不是就可以直接定义一个多维数组来处理这些数据啊
刚接触java不久,很多东西还不了解
希望大神指点指点。
谢了先。


作者: 侯宪博    时间: 2012-7-29 04:04
吆,好巧。
哥们自己奋斗那,呵呵。
想法不错
自己动手实现一下
试一试不就知道了么
就你那两双手
白瞎你这个脑子了
多动手敲敲代码对你没害处
继续努力哈。。。
作者: 陈汉维    时间: 2012-7-29 09:00
本帖最后由 陈汉维 于 2012-7-29 09:55 编辑

一维数组里面要存储二维数组的内存地址,这,貌似好像不行吧?- -!

还真不能存储二维数组的内存地址。
--------------------------------------------------------------------------------以上是错的,大家不要和我一样犯这样的错误
- -!定义一个上帝的数组,还真能存二维数组的内存地址
作者: 杨志    时间: 2012-7-29 09:38
陈汉维 发表于 2012-7-29 09:00
一维数组里面要存储二维数组的内存地址,这,貌似好像不行吧?- -!

还真不能存储二维数组的内存地址。 ...

你敢不敢把把
  1. int[] srt = {a};
复制代码
改成
  1. Object[] str = {a};
复制代码
定义了一个int类型的数据,里面存地址 怎么可能编译过呢!
作者: 杨志    时间: 2012-7-29 09:39
随意写了一下!希望对你有用!

  1. int[][] a = new int[4][4];
  2.                
  3. for(int i = 0 ;i < 4 ; i ++){
  4.         for(int j = 0 ; j < 4 ;j++)
  5.                 a[i][j] = 1;
  6. }
  7.        
  8. Object[] str = {a};
  9. System.out.println(((int[][])str[0])[0][0]);
复制代码

作者: 陈汉维    时间: 2012-7-29 09:51
杨志 发表于 2012-7-29 09:38
你敢不敢把把改成定义了一个int类型的数据,里面存地址 怎么可能编译过呢! ...

谢谢,学习了。嘿以后就不会再犯这个错误。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2