黑马程序员技术交流社区

标题: int[][]2维数组 [打印本页]

作者: xiangzi2008006    时间: 2013-8-31 08:51
标题: int[][]2维数组
本帖最后由 xiangzi2008006 于 2013-8-31 14:25 编辑

张老师说过,基础数据类型1维数组是个Object对象,String类型1维数组可以看出Object也可以看成Object[]数组,那基础数据类型的二维数组呢?
作者: 月黑风高    时间: 2013-8-31 09:08
对象数组呗,只不过数组中存储的全是对象(数组也是对象,String类型也是)

作者: itachi    时间: 2013-8-31 09:16
万物皆对象啊,数组可以看成一个对象,每一个数组成员也可以是一个对象。基础数据类型的二维数组可以看成一个对象,数组成员也可以是对象啊。

作者: 梦航    时间: 2013-8-31 09:22
二维数组实质上还是一维数组,只不过其数组元素作为引用,指向一维数组
  1. int[][] a = new int[6][];  // 长度为6的数组
  2. /*
  3. 可以像一维数组一样遍历其中每个数组元素
  4. */
  5. for (int i = 0; i < a.length; i++)
  6. {
  7.     System.out.println(a[i]);
  8. }
复制代码
另:Java语言是强类型语言
作者: 行如止水    时间: 2013-8-31 09:37
对于二维数组,你可以把它看成一个对象,也可以看成一个对象数组,具体视情况而定;
比如说在序列化中,一般都是将数组看成是一个对象,观察如下代码:
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.ObjectInputStream;
  5. import java.io.ObjectOutputStream;

  6. public class ArraySerDemo {

  7.         public static void main(String[] args) throws Exception{
  8.                 Person per[] = {new Person("张三",30),new Person("李四",31),new Person("王五",32)};
  9.                 ser(per);
  10.                 Person p[] = (Person[]) dser();
  11.                 print(p);
  12.         }
  13.         public static void ser(Object obj) throws Exception{
  14.                 File file = new File("d:"+File.separator+"person.txt");
  15.                 ObjectOutputStream oos = null;
  16.                 oos = new ObjectOutputStream(new FileOutputStream(file));
  17.                 oos.writeObject(obj);
  18.                 oos.close();
  19.         }
  20.         @SuppressWarnings("resource")
  21.         public static Object dser() throws Exception{
  22.                 File file = new File("d:"+File.separator+"person.txt");
  23.                 ObjectInputStream ois = null;
  24.                 ois = new ObjectInputStream(new FileInputStream(file));
  25.                 Object temp = null;
  26.                 temp = ois.readObject();
  27.                 return temp;
  28.         }
  29.         public static void print(Person per[]){
  30.                 for(Person p : per){
  31.                         System.out.println(p);
  32.                 }
  33.         }
  34. }
复制代码
这段代码在序列化的时候就将数组看成了一个对象,二维数组也是这样可以看成是一个对象;
但在某些地方还是看成对象数组看处理的,比如说foreach循环中。
作者: 薛鹏鹏    时间: 2013-8-31 14:19
如果您的问题已经解决
请更改分类未解决为已解决
保持队形,谢谢合作

详情参考 如何修改分类





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