一、数组的特点
二、java中定义数组的方式
- 第一种: 数据类型[] 变量名称 = new 数据类型[size];
- 第二种: 数据类型[] 变量名称 = new 数据类型[]{值1,值2,......};
- 第三种: 数据类型[] 变量名称 = {值1,值2,......};
代码示例:
int[] array1 = new int[4]; //第一种
int[] array2= new int[]{1,2,3,4,5}; //第二种
int[] array3 = {10,20,40,50}; //第三种
二、数组的使用
1.数组的长度
数组对象.length //属性
代码示例:
public static void main(String[] args){
int[] array3 = {1,2,3,4,5};
System.out.print(array3.length);
}
/**
*输出结果为:
*5
*
*/
注意:数组的每一元素都有其对应的下标,下标从0开始,想找到这个数组中的某个数据,是通过数组的下标来进行访问的。
数组对象[下标] //通过下标来访问元素的个数
2.下标越界
数组下标从0开始,范围是[0,arr.length),为左闭右开区间,或者[0,arr.length-1]
如下代码是错误的❌
public static void main(String[] args){
int[] array3 = {1,2,3,4,5};
System.out.print(array3[10]);
}
3.修改数组的数值
数组对象[下标] = 新值
4.遍历数组
(1)for循环遍历
public static void main(String[] args){
int[] array3 = {1,2,3,4,5};
for(int i = 0; i <= array3.length;i++){
System.out.print(array3[i]);
}
}
/**
*输出结果为:
*1
*2
*3
*4
*5
*/
(2)for-each遍历
for (数据类型 临时变量: 可迭代对象) {
System.out.println(临时变量);
}
for(表达式1 :表达式2){
}
表达式1:数组中的每个元素的变量
表达式2:数组名
代码示例:
public static void main(String[] args){
int[] array3 = {1,2,3,4,5};
for (int item: array3 ) {
System.out.println(item);
}
}
for循环和for - each的区别:
for循环是可以拿到数组下标的,for-each拿不到数组下标,所以for-each只能够全部遍历,无法对数组元素进行修改或进行操作.
三、二维数组
二维数组即行和列组成的一个表格,矩阵Matrix。
定义方式:
//数据类型[][] 数组名称 = new 数据类型[size][size];
//创建一个3行4列的二维数组,元素默认都是0
int[][] array1 = new int[3][4];
//创建个指定元素的二维数组
int[][] array2 = new int[][]{
{ 1, 2, 3, 4 } ,
{ 5, 6, 7, 8 } ,
{ 9, 10, 11, 12 }
};
//锯齿矩阵
int[][] array3 = {
{ 1, 2, 3, 4 } ,
{ 5, 6, 7 } ,
{ 8, 9 },
{ 10 }
};
四、Arrays数组工具类
- static int binarySearch(int[] a, int key) :使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。
- static int[] copyOf(int[] original, int newLength) :复制指定的数组,截取或用 0 填充(如有必 要),以使副本具有指定的长度。
- static boolean equals(int[] a, int[] a2) :如果两个指定的 int 型数组彼此相等 ,则返回 true 。
- static void sort(int[] a) :对指定的 int 型数组按数字升序进行排序。
- static String toString(int[] a) :返回指定数组内容的字符串表示形式。