1、一维数组
(1)定义一个数组:
创建一个长度为50的数组:
int[] arr=new int[50];
定义数组时给数组赋值:
int[] arr = {5,1,12,4,6,8,0,3};
要注意和C语言定义数组的方式区别:
int a[5] = {1, 2, 3, 4, 5};
(2)遍历一维数组:
public class ArrayDemo { public static void main(String[] args) { int[] arr = {5,1,12,4,6,8,0,3}; System.out.println("arr的遍历"); for(int i = 0 ; i < arr.length; i++){ System.out.print(arr[i]); System.out.print(" "); } } }
2、二维数组
(1)定义一个二维数组:
int[][] arr = new int[2][4]; int[][] arr = new int[5][]; int[][] arr = {{1,2,2},{3,4,5,6},{7,8,3,9}};
(2)二维数组的遍历:
public class Array{ public static void main(String[] args){ int[] arr0 = {5,1,12,4,6,8,0,3}; int[][] arr = { {1,2,3}, {4,5}, {6,7,8,9}, {0} }; System.out.println("*********二维数组**********"); System.out.println("1、元素求值:"); System.out.println(arr[2][1]);//问题: 打印7,是数组中的元素0 System.out.println(arr[3][0]);//问题: 输出结果 System.out.println(); System.out.print("2、遍历数组:"); System.out.println(); for(int i = 0 ; i < arr.length ;i++){//外循环,遍历二维数组 for(int j = 0 ; j < arr[i].length; j++){//内循环,遍历每个一维数组 arr[0] arr[1] arr[i] System.out.print(" "+arr[i][j]+","); } System.out.println(); } System.out.println(); System.out.println("3、arr的属性"); System.out.println("arr的行数为:"+arr.length); System.out.println("arr第四行元素个数为:"+arr[3].length); } }
3、与数组相关的函数
(1)使用 System.arraycopy()函数拷贝数组
public class ArrayCopyDemo {
public static void main(String[] args) {
int Arr1[] = new int[] { 1, 2, 3, 4, 5 };
int Arr2[] = new int[] { 9, 8, 7, 6, 5, 4, 3 };
System.arraycopy(Arr1, 0, Arr2, 0, 3);//static类型方法,直接类名调用。
// 复制源数组中从下标 0 开始的 3 个元素到目的数组,从下标 0 的位置开始存储。
for (int i = 0; i < Arr1.length; i++)
System.out.print(Arr1[i]);
System.out.println();
for (int j = 0; j < Arr2.length; j++)
System.out.print(Arr2[j]);
System.out.println();//复制的数组元素的个数一定不要超过目的数组的长度。
}
}
将源数组指定个数的元素复制到目标数组,但是,目标数组的元素会被覆盖。
(2) Arrays.sort 来对数组排序
package SortDemo;
import java.util.*;
public class SortDemo {
public static void main(String[] args) {
int [] Arr = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 };
Arrays.sort(Arr);
for (int i = 0; i < Arr.length; i++) {
System.out.print(Arr[i]);
System.out.print(" ");
}
}
}
(3)Arrays.equals(数组1,数组2):
static boolean equals(boolean[] a, boolean[] a2)
如果两个指定的布尔数组彼此 相等 ,则返回 true 。
static boolean equals(byte[] a, byte[] a2)
如果两个指定的字节数组彼此 相等 ,则返回 true 。
static boolean equals(char[] a, char[] a2)
如果两个指定的字符数组彼此 相等 ,则返回 true 。
static boolean equals(double[] a, double[] a2)
如果两个指定的双精度数组彼此 相等 ,则返回 true 。
static boolean equals(float[] a, float[] a2)
如果两个指定的浮动数组彼此 相等 ,则返回 true 。
static boolean equals(int[] a, int[] a2)
如果两个指定的int数组彼此 相等 ,则返回 true 。
static boolean equals(long[] a, long[] a2)
如果两个指定的longs数组彼此 相等 ,则返回 true 。
static boolean equals(Object[] a, Object[] a2)
如果两个指定的对象数组彼此 相等 ,则返回 true 。
static boolean equals(short[] a, short[] a2)
如果两个指定的短裤阵列彼此 相等 ,则返回 true 。
static void fill(boolean[] a, boolean val)
将指定的布尔值分配给指定的布尔数组的每个元素。
import java.util.Arrays; public class ArrayTest { public static void main(String[] args) { int [] Arr1 = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 }; int [] Arr2 = new int[] { 10, 21, 4, 9, 8, 3, 34, 99 }; Boolean b= Arrays.equals(Arr1,Arr2); System.out.println(b); } }
判断两个数组中的元素是否相等,相等则返回true,不相等则返回false。