Java学习
day14
目录
- 数组
1、数组
-
1、数组的概念:是一种容器,可以同时存放 同种数据类型的 多个数据
-
2、数组的特点:
数组是一种引用数据类型
数组当中可以存储多个数据,但是类型必须统一。
数组的长度在程序的运行期间 是不可改变的 -
3、数组的初始化:
动态初始化
静态初始化 -
(1)动态初始化
C语言的定义:int temp[10];java中的动态初始化:类型 对象名 = new 类型
数据类型[] 数组名称 = new 数组类型[数组长度]
-
(2)静态初始化
C语言写法:int temp[] = {};java写法:数据类型[] 数组名称 = new 数组类型{元素1,元素2,元素3,…}
-
注意事项:
虽然静态初始化没有告诉编译器数组的长度,但是可以根据大括号里面的内容进行推测长度。 -
例一:
运行代码如下:
package demo01;
public class Demo01Array {
public static void main(String[] args) {
// 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[] {“小一”,“小二”,“小三”,“小四”,“小五”};
//不省略的静态初始化可以拆分为两步骤
String[] arrayE;
arrayE = new String[] {“小一”,“小二”,“小三”,“小四”,“小五”};
// 3.数组静态初始化的省略写法
//String[] arrayF = {"小一","小二","小三","小四","小五"};
//String[] arrayF;
//错误写法:省略静态初始化不能拆分开
//arrayF = {"小一","小二","小三","小四","小五"};
}
}
2、数组的使用
- 例二:
运行代码如下:
package demo01;//使用
/*
-
直接打印数组名称,得到的是数组对应的:内存地址的哈希值
-
*/
public class Demo02ArrayUse {
public static void main(String[] args) {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]); System.out.println(array[4]); System.out.println("============"); int num = array[3]; System.out.println(array);
}
}
运行结果:
3、数组的动态初始化 -
例三:
运行代码如下:
package demo01;
// 动态初始化
public class Demo03Array {
public static void main(String[] args) {
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[0]);
System.out.println(arrayC[1]);
System.out.println(arrayC[2]);
}
}
运行结果:
4、数组的两种异常
- 数组的编号从0开始,到数组长度为-1结束
- 容易出现越界问题
- 例四:
运行结果如下:
package demo01;
public class Demo04ArrayIndex {
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(array[3]);
System.out.println("==============");
//数组的空指针异常
int[] arrayA = null;
// arrayA = new int[3];
System.out.println(arrayA[0]);
}
}
运行结果:
5、数组长度及使用
- 例五:
运行代码如下:
package demo01;
public class Demo05Array {
public static void main(String[] args) {
int[] arrayA = new int[3];
int[] arrayB = {1,2,3,4,5,6,7,8,9};
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("===================");
//数组的使用
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println(arrayB[3]);
System.out.println("=================");
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]);
}
}
}
运行结果:
tip:2020080605006