📄 05_array.txt
字号:
数组:
java语言里面的数组的语法.
定义:
一维数组:
int[] a 或者 int a[] 但是括号内部不能给数字.
这里的a,仅仅是定义了一个数组的引用.
实例化:
a=new int[5];
使用:
赋值a[0]=1;
如果实例化后不赋值,那么系统会自动给它每个元素赋值为0;
如果是 double[] 默认为0.0
如果是 boolean[] 默认为false
如果是 对象[] 默认为NULL
写法:
int[] a=new int[5];
int[] a=new int[]{1,2,3,4,5}//给这个数组赋的初始值.
如果赋初值了那么new int[] 括号内必须空着.
数组的定义实例化和赋初值可以合并;
int[] a={1,2,3,4,5};
for(int i=0;i<a.length;i++){
....
}
数组有一个属性length
对象类型的数组:
Animal[] a=new Animal[5];
5个空间里面存放的5个Animal类型的引用.空间默认值为NULL;
a[0]=new Animal();a[1]=new Animal();
这里很像c++里面的双重指针.
int* p[] 指针数组,每个元素都是指针.
int (*p)[] 数组指针,p是一个指向数组的指针.
注意:数组下标从0开始,就是下标的最大值比申请大小的值小1.
二维数组:
定义:
int[][] a;
实例化:
a=new int[3][5];
a指向一维数组,该数组有3个元素,每个元素又是一个引用,指向一个5个元素的数组.
C++:
它的二维数组每个元素都是顺序存放的
方便指针操作.
java:
它的二维主组只能保证一维是连续的.第二维上相互是分开的.
没有指针.
写法:
int[][] a=new int[3][];
如果在实例化一个二维数组的时候,第二维的长度可以不指定.
a[0]=new int[5];
a[1]=new int[2];
a[2]=new int[4];
最终二维数组的第二维上每个元素的元素个数不一样.
可以分别给每一维实例化然后分配空间.
int[][] a=new int[][]{{1,2,3},{4,5,6},{7,8,9}}
访问方式:
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=....;
}
}
注意,理解存储上的差异.
保存一首古诗,从右向左,竖行输出.
朝辞白帝彩云间
千里江陵一日还
两岸猿声啼不住
轻舟已过万重山.
package com.tarena.day02;
public class Tangshi{
public static void main(String[] args){
char[][] s=new char[4][];
s[0]={'朝','辞','白','帝','彩','云','间'};
s[1]={'千','里','江','陵','一','日','还'};
s[2]={'两','岸','猿','声','啼','不','住'};
s[3]={'轻','舟','已','过','万','重','山'};
//还可以使用字符串赋值
for(int i=0;i<s[0].length;i++){
for(j=s.length-1;j>=0;j--){
System.out.print(s[j][i]);
}
System.out.println();
}
}
}
int n=12;
int[] a=new int[n];
for(int i=0;i<a.length;i++){
a[i]=i+1;
}
int m=3;
int mx=0;
int b[]=new int[n];
for(int i=0;i<12;i++){
if(a[i]!=0){
mx++;
}
if(m==mx){
System.out.print(a[i]);
a[i]=0;
mx=0;
n-=1;
}
if(n==0)break;
if(i==11)i=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -