public class Main {
private static int[] temp;
//数组
//定义 一组统一类型的变量集合 属于引用数据类型(同一块堆内存空间可以被不同的栈内存所指向),长度固定
public static void main(String[] args) {
//两种创建方式
/*开辟了一个长度为3的数组*/
int data[] = new int[3];
data[0] = 30; // 第一个元素
data[1] = 10; // 第二个元素
data[2] = 20; // 第三个元素
for (int x = 0; x < data.length; x++) {
System.out.println(data[x]); //通过循环控制索引
}
int data1[] = new int[]{10,20,30};
for (int x = 0; x < data.length; x++) {
System.out.println(data1[x]); //通过循环控制索引
}
//数组引用传递
temp = data;
temp[0] = 99;
for(int i = 0; i < temp.length; i++) {
//temp 和data 都指向同一个堆内存
System.out.println(data[i]);
}
//二维数组
int data2[][] = new int[2][3];
data2[0][0] = 10; // 第一个元素
data2[0][1] = 20; // 第二个元素
data2[0][2] = 30; // 第三个元素
data2[1][0] = 110; // 第一个元素
data2[1][1] = 120; // 第二个元素
data2[1][2] = 130; // 第三个元素
for(int i = 0; i < data2.length; i++) {
for(int j = 0; j < data2[i].length; j++) {
System.out.println(data2[i][j]);
}
}
//Java对数组的支持
//1、数组排序
Arrays.sort(data);
for (int x = 0; x < data.length; x++) {
System.out.println(data[x]);
}
System.out.println("--------------------------------------------------------"); //通过循环控制索引
//2、数组拷贝
System.arraycopy(data1,0,data,0,3);//(原数组名称, 原数组开始点, 目标数组名称, 目标数组开始点, 拷贝长度)
for (int x = 0; x < data.length; x++) {
System.out.println(data[x]);
}
//数组数据统计
int data3[] = new int[] {1, 2, 3, 4, 66, 5, 6, 7, 8, 9};
double result[] = stat(data3);
System.out.println("最大值:" + result[0]);
System.out.println("最小值:" + result[1]);
System.out.println("数据总和:" + result[2]);
System.out.println("平均值:" + result[3]);
}
public static double[] stat(int data[]) {
double reData[] = new double[4];
reData[0] = data[0];
reData[1] = data[0];
reData[2] = data[0];
for(int x = 1; x < data.length; x++) {
reData[2] += data[x];
if(data[x] > reData[0])
reData[0] = data[x];
if(data[x] < reData[1])
reData[1] = data[x];
}
reData[3] = reData[2] / data.length;
return reData;
}
}