4-Java数组

在Java中,数组的工作方式和C/C++不同

一维数组

一维数组本质上是一连串类型相同的变量。为创建数组,首先必须创建期望类型的数组变量。

<code>example:int month_days[]; </code>
剖析:尽管这个声明确立了month_days是数组变量的事实,但这个数组实际上并不存在。为了将它链接到一个实际的、物理的整数数组,必须使用new分配一个数组,并赋值给month_daysnew是一个用于分配内存的特殊运算符,Java是动态分配的,可以通过索引方法来访问数组中特定元素

<code>array-var = new type [size];
month_days = new int[12];</code>
合并后就是:
<code>int month_days[] = new int[12];</code>
初始化:
<code>int month_days[] = {31,28,31,30,31,30,31,31,30,31,30,31};</code>
type指定了要分配的数据类型,size指定了数组中元素的数量,array-var是链接到数组的数组变量,即为了使用new分配一个数组,必须指定要分配元素的类型和数量,通过new分配的数组,元素会自动初始化为0,false,null(对于引用类型)

So:获得一个数组需要两个步骤:
1、必须声明一个期望数组类型的变量。
2、必须使用new分配容纳该数组的内存,然后赋值给数组变量

多维数组

*当为多维数组分配内存时,只需要为第一维分配内存,可以单独为余下的维分配内存 *
<code>
int twoD[][] = new int[4][];
twoD[0] = new int[5];
twoD[1] = new int[5];
twoD[2] = new int[5];
twoD[3] = new int[5];
</code>

虽然对于这种情况单独分配第二维没有优点,但对于其他情况可能有优点。例如:当手动分配维数时,不必为每一维分配相同数量的元素。 下面创建一个二维数组,第二维的长度不是相同的:
<code>
int twoD[][] = new int[4][];
twoD[0] = new int[1];
twoD[1] = new int[2];
twoD[2] = new int[3];
twoD[3] = new int[4];
int i,j,k = 0;
for(i = 0; i < 4; i++){
for(j = 0; j < i + 1;j++){
twoD[i][j] = k;
k++;
}
}
for(i = 0; i < 4; i++){
for(j = 0; j < i + 1;j++){
System.out.print(twoD[i][j] + " ");
}
}
输出:
0
1 2
3 4 5
6 7 8 9
</code>

  • 除了上述提及到的声明方式,还有一种 type[] var-name;
    <code>
    int a1[] = new int[3];
    int[] a2 = new int[3]; //两者等价
    ////////////////////////////////
    char twod1[][] = new char[3][4];
    char[][] twod2 = new char[3][4]; //两者等价
    //声明多个数组时,这种形式比较便利
    int[] nuts ,nums2,num3;
    </code>
  • 在数组初始化器也可以使用表达式以及字面值
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,420评论 18 399
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 2,050评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,221评论 0 41
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,490评论 0 6
  • 谁要开口 曾经用过的借口 谁要反驳 曾经说过的承诺 之前的温柔 是你们以后坚强的理由 遗忘被记得 是你们受伤以后的...
    Dawn丶Zz阅读 295评论 0 2

友情链接更多精彩内容