wangc
Jan 22, 2020
数组
数组概念:数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致.
定义和访问
- 定义数组
// 默认数组内元素值为0
int[] arr = new int[3]; // 动态初始化(指定长度)
int[] arr = new int[]{1,2,3,4,5}; // 静态初始化(指定内容)
int[] arr = {1,2,3,4,5}; // 省略的静态初始化
// 左侧的中括号:代表是一个数组
// 右侧的new:代表创建数组的动作
*访问数组:数组名[索引]
tips: 直接打印数组名称,返回的是哈希地址值
内存原理图
基本操作
public class Array {
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println("数组:");
printArray(arr);
System.out.println("最大值:" + getMax(arr));
arr = reverseArray(arr);
System.out.println("逆序:");
printArray(arr);
}
// 数组遍历输出
public static void printArray(int[] arr) {
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
// 找数组最大值
public static int getMax(int[] arr) {
int max = 0;
for(int i = 0; i < arr.length; i++) {
if(max < arr[i]) {
max = arr[i];
}
}
return max;
}
// 数组反转
public static int[] reverseArray(int[] arr) {
for (int i = 0; i < arr.length/2; i++) {
int tmp = arr[i];
arr[i] = arr[arr.length-1-i];
arr[arr.length-1-i] = tmp;
}
return arr;
}
}
数组与方法
- 数组作为参数
- 数组作为返回值,可以返回多个值
public class ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10, 20, 30);
System.out.println("总和:" + result[0]);
System.out.println("平均数:" + result[1]);
}
public static int[] calculate(int a, int b, int c) {
int sum = a + b + c; // 总和
int avg = sum / 3; // 平均数
int[] array = { sum, avg };
return array;
}
}