概述
数组是一种引用类型。数组可以存放多个类型统一的数据,可以存放基本类型,也可以存放引用类型。
定义格式:
数据类型[] 数组名称;
等效的写法:
数据类型 数组名称[];
数组的初始化方式,两种:
1.动态初始化,指定数组的长度
2.静态初始化,指定数组的内容
动态初始化:直接指定数组的长度,也就是数组当中到底可以存放多少个数组。
第一种格式:
数组类型[] 数组名称 = new 数据类型[数组长度];
第二种格式:
数据类型[] 数组名称;
数组名称 = new 数据类型[数组长度];
public static void main(String[] args) {
int[] array1 = new int[3];
double[] array2 = new double[5];
String[] array3 = new String[10];
int[] array4;
array4 = new int[10];
}
访问数组当中的元素:
如果直接打印数组的名称,结果是16进制的地址值(的哈希值)
格式:
数组名称[索引]
索引:也就是数组当中多个元素的编号。从0开始,一直到“长度-1”为止
动态初始化的时候,数组当中的元素都会被赋予一个默认值。规则
- 如果是整数,默认就是0;
- 如果是浮点数,默认就是0.0;
- 如果是时字符,默认就是’\u0000’;
- 如果是布尔值,默认就是false;
- 如果是字符串或者其他引用类型,默认null;
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("=================");
arrayB[1] = 3.14;
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
double num = arrayB[1];
System.out.println("num变量的内容是:" + num);
}
静态初始化
静态初始化不会直接指定长度,而是直接指定具体的元素内容
标准格式:
数据类型[] 数组名称 = new 数据类型[] { 元素1, 元素2, 元素3, ... };
标准格式也可以拆分成两个步骤:
数据类型[] 数组名称;
数组名称 = new 数据类型[] {...};
简便格式:
数据类型[] 数组名称 = { 元素1, 元素2, 元素3, ... };
一旦使用了简便格式,必须一个步骤完成初始化,不能拆分成为两个步骤
注意事项:
- 虽然静态初始化没有指定长度,但是仍然可以根据具体元素的个数自动推算出来长度
- 虽然简便格式当中可以不写new...,但是仍然有内容当中开辟空间的过程
- 虽然直接指定了具体元素内容,但是仍然会有默认值会被替换的过程
public static void main(String[] args) {
int[] arrayA = new int[3];
arrayA[0] = 10;
arrayA[1] = 20;
arrayA[2] = 30;
System.out.println(arrayA[0]);
System.out.println(arrayA[1]);
System.out.println(arrayA[2]);
System.out.println("===================");
int[] arrayB = new int[] {15, 25, 35};
System.out.println(arrayB);
System.out.println(arrayB[0]);
System.out.println(arrayB[1]);
System.out.println(arrayB[2]);
System.out.println("===================");
int[] arrayC;
arrayC = new int[] {13, 23, 33};
System.out.println(arrayC);
System.out.println(arrayC[0]);
System.out.println(arrayC[1]);
System.out.println(arrayC[2]);
System.out.println("===================");
int[] arrayD = {16, 26, 36};
System.out.println(arrayD);
System.out.println(arrayD[0]);
System.out.println(arrayD[1]);
System.out.println(arrayD[2]);
System.out.println("===================");
//错误写法,简便格式的静态初始化不能拆分成为两个步骤
// int[] arrayE;
// arrayE = {10 ,20, 30};
}
获取数组长度:
格式:
数组名称.length
注意:
一个数组一旦在内存当中被创建了,那么数组的长度就不能发生改变。
public static void main(String[] args) {
int[] arrayA = { 3, 6, 4, 8, 6, 9, 3, 6, 2, 10, 100 };
System.out.println(arrayA.length);
int[] arrayB = new int[25];
int len = arrayB.length;
System.out.println(len);
}
code
public class ArrayMin {
public static void main(String[] args) {
int[] array = { 5, 10, 15, 40, 30, 10000, 900, -200};
int min = array[0];
for (int i = 1; i < array.length; i++) {
if (array[i] < min) {
min = array[i];
}
}
System.out.println("最小值:" + min);
}
}
---------------------------------------------------------------------------------------------
public class ArraySum {
public static void main(String[] args) {
int[] array = new int[6];
array[0] = 100;
array[1] = 80;
array[2] = 150;
array[3] = 50;
array[4] = 90;
array[5] = 200;
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
System.out.println("sum = " + sum);
}
}
网友评论