1、数组的概念:是一种容器,可以同时存放同种数据类型的多个数据
2、数组的特点:
-
(1)数组是一种引用数据类型
-
(2)数组当中可以存储多个数据,但是类型必须统一
-
(3)数组的长度在程序的运行期间是不可改变的
- 数组的初始化:
-
动态初始化
-
静态初始化
-
(1)动态初始化(动态初始化可以拆开为两步骤)
-
c语言的定义
-
int temp[10];
-
java中的动态初始化
-
类型 对象名=new 类型;
-
数据类型[] 数组名称=new 数据类型[数组长度];
-
(2)静态初始化(不省略的静态初始化可以拆开为两步骤)
-
c语言写法
-
int temp[]={};
-
java写法
-
数据类型[] 数组名称=new 数据类型{元素1,元素2,元素3....}
3、 注意事项
-
虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的内容进行推测长度
4、练习
(1)
package demo01;
/*
*
* 1、数组的概念:是一种容器,可以同时存放同种数据类型的多个数据
* 2、数组的特点:
* (1)数组是一种引用数据类型
* (2)数组当中可以存储多个数据,但是类型必须统一
* (3)数组的长度在程序的运行期间是不可改变的
*
*
* 数组的初始化:
* 动态初始化
* 静态初始化
*
* (1)动态初始化
*
* c语言的定义
* int temp[10];
*
* java中的动态初始化
* 类型 对象名=new 类型;
* 数据类型[] 数组名称=new 数据类型[数组长度];
*
* (2)静态初始化
* c语言写法
* int temp[]={};
*
* java写法
* 数据类型[] 数组名称=new 数据类型{元素1,元素2,元素3....}
*
* 注意事项
* 虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的内容进行推测长度
*/
public class Demo01A {
public static void main(String[] agrs) {
//1、数组的动态初始化
//创建一个数组,用来存放55个int数据
//学号
int[] arrayA=new int[55];
//java成绩
double[] arrayB=new double[55];
//姓名
//String[] arrayC=new String[55];
//动态初始化可以拆开为两步骤
String[] arrayC;
arrayC=new String[55];
//2、数组的静态初始化
int[] arrayD=new int[] {1,2,3,4,5};
//String arrayE=new String[] {"无尘","周洪","hello","java","world"};
//不省略的静态初始化可以拆开为两步骤
String[] arrayE;
arrayE=new String[] {"无尘","周洪","hello","java","world"};
//3、数组静态初始化的省略写法
//String arrayF=new String[] {"无尘","周洪","hello","java","world"};
//String[] arrayF;
//错误写法,省略静态初始化不能拆开
//String arrayF=new String[] {"无尘","周洪","hello","java","world"};
}
}
(2)
package demo01;
/*
* 直接打印数组名称,得到的是数组对应的:内存地址的哈希值
*
*
*/
public class Demo02A {
public static void main(String[] agrs) {
int[] array= {10,20,30,40,50};
System.out.println(array);
//数组的下标是从0开始的
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[3]);
}
}
(3)
package demo01;
public class Demo03A {
public static void main(String[] agrs) {
int[] arrayA=new int[3];
System.out.println(arrayA);
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
System.out.println("============");
double[] arrayB=new double[3];
System.out.println(arrayB);
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println("============");
String[] arrayc=new String[3];
System.out.println(arrayc);
System.out.println(arrayc[0]);
System.out.println(arrayc[1]);
System.out.println(arrayc[2]);
System.out.println("============");
arrayc[2]="中国女足";
System.out.println(arrayc);
System.out.println(arrayc[0]);
System.out.println(arrayc[1]);
System.out.println(arrayc[2]);
}
}
(4)
package demo01;
/*
* 数组的编号从0开始,到数组长度-1结束
*
* 容易出现数组越界的问题
*
*/
public class Demo04A {
public static void main(String[] args) {
int[] array= {10,20,30};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
//错误写法,数组越界异常
System.out.println("==========");
//System.out.println(array[3]);
int[] arrayA=null;
//arrayA=new int[3];
System.out.println(arrayA[0]);
}
}
(5)
package demo01;
public class Demo05A {
public static void main(String[] agrs) {
int[] arrayA=new int[3];
int[] arrayB= {1,2,3,2,3};
int len=arrayB.length;
System.out.println(len);
//数组的长度不可更改
int[] arrayc=new int[3];
System.out.println(arrayc.length);
arrayc=new int[5];
System.out.println(arrayc.length);
//数组的使用
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println(arrayB[3]);
for(int i=0;i<5;i++)
{
System.out.println(arrayB[i]);
}
System.out.println("===============");
for(int i=0;i<arrayB.length;i++)
{
System.out.println(arrayB[i]);
}
}
}