Java 基础 3
1. 数组的定义: 数组是存储同一种数据类型多个元素的容器。
2. 数组的分类: a .存储基本数据类型,b.存储引用数据类型。
3. 数组的定义格式: 格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
4.数组的初始化: a.静态初始化: 初始化时指定每个数组元素的初始值,由系统决定数组长度
格式为: 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化格式: 数据类型[] 数组名 = {元素1,元素2,...};
b.动态初始化: 只指定长度,由系统给出初始化值
格式为: 数据类型[] 数组名 = new 数据类型[数组长度];
也可以写为: 数据类型数组名[] = new 数据类型[数组长度];
4. 数组的内存分配:
在介绍内存分配之前先介绍一下内存:
l 栈 存储局部变量
l 堆 存储new出来的东西
l 方法区 (面向对象进阶讲)
l 本地方法区 (和系统相关)
l 寄存器 (给CPU使用)
数组内存分配图:
1. 一个数组(如果显示不出来请在附件查看)
file:///C:/Users/pc/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
file:///C:/Users/pc/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg
5. 数组的遍历
1.for, 2.while, 3.do…while, 4.增强for循环(foreach)
public classDemo13{
public static void main(String []args){
String [ ] str =new String[3];
str[0]="张三";
str[1]="李四";
str[2]="王五";
// for形式遍历数组
for(int i=0;i<str.length;i++){
System.out.println("一维数组:for:"+str);
}
// 增强for形式 s遍历所有数组
for(String s:str){
System.out.println("一维数组增强:for:"+s);
}
// do...while形式
int ii=0;
do{
System.out.println("一维数组:do...while:"+str[ii]);
ii++;
}while(ii<str.length);
// while形式
int iii=0;
while (iii<str.length){
System.out.println("一维数组:while:"+str[iii]);
iii++;
}
6.二维数组格式
定义格式
数据类型[][] 数组名;
数据类型 数组名[][];不推荐
数据类型[] 数组名[]; 不推荐
初始化方式
数据类型[][] 变量名 = new 数据类型[m][n];
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版格式:数据类型[][]变量名 = {{元素…},{元素…},{元素…}};
7.二维数组的遍历
int[][] in = new int[2][3];
in[0][0]=1;
in[0][1]=2;
in[0][2]=3;
in[1][0]=4;
in[1][1]=5;
in[1][2]=6;
// for形式
for(int i1=0;i1<in.length;i1++){
for(intj=0;j<in[i1].length;j++){
System.out.println("二维数组:for:"+in[i1][j]);
}
}
// 增强 for形式
for(int[] i2:in){
for(int k:i2){
System.out.println("二维数组:增强for:"+k);
}
}
// while形式
int i3=0;
while(i3<in.length){
for(intj1=0;j1<in[i3].length;j1++){
System.out.println("二维数组:while:"+in[i3][j1]);
}
i3++;
}
// do...while形式
int i4=0;
do{
for(intj2=0;j2<in[i4].length;j2++){
System.out.println("二维数组:do...while:"+in[i4][j2]);
}
i4++;
}while(i4<in.length);
/* int[][]in1={{1,2,3},{4},{5,6},{7,8,9,10}};
for(int [] k:in1){ //增强for
for(int l:k){
System.out.println(l);
}
}
for(inti=0;i<in1.length;i++){ // for 形式
for(intj=0;j<in1.length;j++){
System.out.println(in1[j]);
}
}
int i=0; // while形式
while(i<in1.length){
int j=0;
while(j<in1.length){
System.out.println(in1[j]);
j++;
}
i++;
}
int i=0; // do...while形式
do{
int j=0;
do{
System.out.println(in1[j]);
j++;
}while(j<in1.length);
i++;
}while(i<in1.length);
|