黑马程序员技术交流社区

标题: 数组初始化的问题? [打印本页]

作者: 黄嵘才    时间: 2012-12-18 10:29
标题: 数组初始化的问题?
本帖最后由 esirong 于 2012-12-18 11:26 编辑

我要做一个12个元素长的数组。但是同时我又想存入我指定的10个元素要装入的十个数{52,10,67,95,16,16,1,80,8,84}
int[] arr = new int[12];//做12个长的数组
arr ={52,10,67,95,16,16,1,80,8,84 }//错
arr ={52,10,67,95,16,16,1,80,8,84,0,0 }//错
有没有好办法可以方便快捷的装入?
一定要这样吗?
int[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };//定义并初始化。

谢谢先。

作者: 王玮    时间: 2012-12-18 10:46
在我的脑海里还真是。。。数组是引用类型的,arr 指向个地址,这个{}东西 咋看咋不是地址。所以不可以滴
初始化方式:
第一种:int[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };
第二种:int[] arr = new int[12];
         然后用for循环 给每个arr[0],...arr[11] 赋值。
第三种:默认初始化了给。
作者: Spring up    时间: 2012-12-18 10:53
int arr[]={1,2,3,4,5};
如果非要初始化的话,这种稍微简便一点!
希望对你有用!


作者: 李培根    时间: 2012-12-18 10:55

int[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };
int[] arr = {52,10,67,95,16,16,1,80,8,84,0,0 };
这两个的是一样的,写的时候直接写下面这个就可以。

int[] arr = new int[12];这个是定义一个长度为12的int型数组,但是赋值的时候只能一个一个赋值。

int[] arr = {52,10,67,95,16,16,1,80,8,84,0,0 };这个不是给上面的arr数组赋值,儿时创建了一个新的arr数组,因为重名所以报错。



作者: 孙辉辉    时间: 2012-12-18 10:56
比较实际的一个方法还是要先int[] arr = new int[12];  就是先开辟了12个
然后使用for循环进行赋值前几个。
nt[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };//定义并初始化。
这样是不怎么可取的,你这里只是两个,你可以这样先初始化了,如果你只是有两个初始值,难道后面十个也这样写。
毕竟到时候先赋值的应该是占少数,未使用的是多数

或者你可以使用集合,都存好后再转换回来
作者: 何创    时间: 2012-12-18 11:00
数组在使用时候,要么你动态初始化,就是这样的方式:int[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };
要么你就使用这样的方式:int[] arr = new int[10];当然第二种的值默认值是0
就这两种方式,这是规定,没你第三种方式,  你的这样写法:“int[] arr = new int[]{52,10,67,95,16,16,1,80,8,84,0,0 };//定义并初始化。”我个人觉得是比较麻烦,建议你考虑第二种方式作为常用的方式。

作者: 黄嵘才    时间: 2012-12-18 11:26
谢谢各位。




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