一、数组是什么
1.数组是存放同一种数据类型的元素的集合,也可以看作为一个容器。
特点: 1、元素的数据类型一致,可以存放基本数据类型,也可以存放引用数据类型。
2、数组的长度是固定的。
2.数组的定义格式
1、数据类型[ ] 数组名; (推荐使用第一种)
2、数据类型 数组名[ ];
3.数组的初始化方式
1.动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值。
- 格式:数据类型[ ] 数组名 = new 数据类型[数组长度];
- 数组长度其实就是数组中元素的个数;
- 举例:
int[ ] arr = new int[3];
解释:定义了一个int类型的数组,这个数组可以存放3个int类型的值。
2.静态初始化:在定义的时候就手动给出初识值。
- 格式: 数据类型[] 数组名= new 数据类型[]{元素值1,元素值2,元素值3,....};
- 简化格式:数据类型[] 数组名={元素值1,元素值2,元素值3.....};
public class ArrayDemo5 {
public static void main(String[] args) {
//定一个数组并静态初始化
int[] arr = {100,200,300,400};
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
}
}
4.如何给一个数组进行赋值?
/*
定义两个数组,先定义一个数组,赋值,输出。
然后定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
然后给第二个数组赋值,再次输出两个数组的名及元素。
*/
public class ArrayDemo4 {
public static void main(String[] args) {
//定义第一个数组
int[] arr1 = new int[3];
arr1[0] = 11;
arr1[1] = 22;
arr1[2] = 33;
System.out.println(arr1);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
//定义第二个数组的时候把第一个数组的地址赋值给第二个数组。
int[] arr2 = arr1;
arr2[0] = 100;
arr2[1] = 200;
System.out.println(arr1);
System.out.println(arr2);
System.out.println(arr1[0]);
System.out.println(arr1[1]);
System.out.println(arr1[2]);
}
}
5.数组遍历
1.获取的长度的属性:length
使用格式:数组名.length。
/*
数组获取最值(获取数组中的最大值最小值)
*/
public class ArrayDemo8 {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5};
//思路:任意取一个值,假设它就是最大值
//然后拿着这个值与其余的值做比较,如果说遇到了比它还大的值,将该值作为临时最大值,当遍历完之后,获取到真正的最大值
//一般情况下,取第一个元素为最大值
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
System.out.println("数组中最大值为:" + max);
System.out.println("==============用方法改进==============");
int maxNumber = getMaxNumber(arr); //0x001
System.out.println("数组中最大值为:" + maxNumber);
}
/**
* 定义一个获取数组最大值的方法
* 返回值类型:int
* 参数列表:int[] arr
*/
public static int getMaxNumber(int[] arr1){ //0x001
int max = arr1[0];
for (int i = 1; i < arr1.length; i++) {
if (arr1[i] > max) {
max = arr1[i];
}
}
return max;
}
}
二、二维数组
1.什么是二维数组。
二维数组其实就是一个元素为一维数组的数组。
2.二维数组的定义格式。
格式一:数据类型[][] 变量名=new 数据类型[m][n];
m表示这个二维数组有多少个一维数组;
n表示每一个一维数组的元素个数。
举例:int [][] arr= new int[3][2];
定义了一个二维数组arr;这个二维数组有3个一维数组,名称是arr[0]、arr[1]、arr[2];每个一维数组有两个元素,可以通过arr[m][n]来获取。(表示获取第m+1个一维数组的第n+1个元素)。
格式二:数据类型[][] 变量名=new 数据类型[m][];
m表示这个二维数组有多杀个一维数组;
这个方式没有给出一维数组的元素个数,可以动态给出。
举例:int[][] arr=new int[3][];
arr[0] = new int[2]; arr[1]= new int[3];arr[2]=new int[1];
/*
二维数组第二种定义格式:
数据类型[][] 变量名 = new 数据类型[m][];
举例:int[][] arr = new int[3][];
*/
public class Array2Demo2 {
public static void main(String[] args) {
//定义二维数组的第二种格式
int[][] arr = new int[3][];
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
//给二维数组种第一个元素赋值一个一维数组
//赋值后的意义是:表示二维数组种第一个元素是一个长度为4的int类型的一维数组。
arr[0] = new int[4];
//赋值后的意义是:表示二维数组种第二个元素是一个长度为5的int类型的一维数组。
arr[1] = new int[5];
//赋值后的意义是:表示二维数组种第三个元素是一个长度为10的int类型的一维数组。
arr[2] = new int[10];
System.out.println(arr); //二维数组的地址值
System.out.println(arr[0]); //二维数组中第一个一维数组的地址值
System.out.println(arr[1]); //二维数组中第二个一维数组的地址值
System.out.println(arr[2]);//二维数组中第三个一维数组的地址值
}
}
格式三:数据类型[][] 变量名=new 数据类型[][]{{元素.....},{元素.....},{元素.....}...};
简化版格式:
数据类型[][] 变量名={{元素....},{元素....},{元素....}};
举例:int[][] arr= {{1,2,3},{4,6},{6}};
public class Array2Demo5 {
public static void main(String[] args) {
//定义一个二维数组表示是一个公司,每个季度相当于一个一维数组作为二维数组的元素传入
int[][] arr = {{22, 66, 44}, {77, 33, 88}, {25, 45, 65}, {11, 66, 99}};
// int[][] arr = new int[2][]{{1,2},{3,1,2}};
//定义一个变量统计总销售额
int sum = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
sum = sum + arr[i][j];
}
}
System.out.println("该公司年销售额为:" + sum);
}
}