数组:是一种容器,可以同时存放多个数据值。
数组的特点:
- 数组是一种引用数据类型
- 数组当中的多个数据,类型必须统一
- 数组的长度在程序运行期间不可改变
数组的初始化:在内存当中创建一个数组
- 动态初始化(指定长度)
如果是整型,动态数组默认为0
如果是浮点型,动态数组默认为0.0
如果是字符类型,动态数组默认为'\u0000'
如果是布尔类型,动态数组默认为false
如果是引用类型,动态数组默认为null。
/*
数据类型[] 数组名称 = new 数据类型[数组长度]
*/
public class Demo02MethodArray {
public static void main(String[] args) {
// 创建int数据组
int[] arrayA = new int[10];
// 创建double数组
double[] arrayB = new double[10];
// 创建Stirng字符串
String[] arrayC = new String[10];
}
}
- 静态初始化(指定内容)
静态数组其实也有默认值,只不过程序马上将默认值替换为了大括号中的具体数值。
public class Demo02MethodArray {
public static void main(String[] args) {
//直接创建一个数组,里面内容全部是int数字
int[] arrayA = new int[]{1,5,7};
//创建一个数组,用来装字符串 "Hello","World","Java"
String[] arrayB = new String[]{"Hello","World","Java"};
}
}\
- 省略的数组格式
/*
数据类型[] 数组名称 = {元素1,元素2}
*/
public class Demo02MethodArray {
public static void main(String[] args) {
//直接创建一个数组,里面内容全部是int数字
int[] arrayA = {1,5,7};
//创建一个数组,用来装字符串 "Hello","World","Java"
String[] arrayB ={"Hello","World","Java"};
}
}
使用建议:
如果不确定数组当中的具体内容,用动态初始化,否则,已经确定了具体的内容,用静态初始化。
直接打印将得到数组的内存哈希值
public class Demo02MethodArray {
public static void main(String[] args) {
//直接创建一个数组,里面内容全部是int数字
int[] arrayA = {1,5,7};
//创建一个数组,用来装字符串 "Hello","World","Java"
String[] arrayB ={"Hello","World","Java"};
System.out.println(arrayA); //[I@1b6d3586
for (int i = 0; i < 3; i++) {
System.out.println(arrayA[i]);
}
}
}
数组常见问题:
数组索引越界异常:
java.lang.ArrayIndexOutOfBoundsException
数组空指针异常:
java.lang.NullPointerException
获取数组的长度:.length
当一个方法中有多个参数,但是只能有一个返回值,
如果希望一个方法中产生的多个结果进行返回,怎么办?
使用一个数组作为返回值类型即可
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = caclute(10, 20, 30);
System.out.println("数组中的和为:" + result[0]);
System.out.println("数组中的平均值为:" + result[1]);
}
public static int[] caclute(int a ,int b, int c){
int sum = a + b + c;
int avg = sum/3;
int[] arrayt = {sum, avg};
return arrayt;
}
}