Java基础语法—数组
数组
数组
-
数组的定义:
- 数组是相同类型数据的有序集合
- 数组描述相同类型的数据并且按照一定先后顺序排列
- 数组中每个数据称为数组元素,可以通过数组下标进行调用
-
数组的特点:
- 数组一旦被创建,大小不能被更改
- 数组元素类型必须相同,不能出现混合类型
- 数组元素可以是任何数据类型
- 数组变量属于引用类型,数组也可以看出是对象,数组中每个元素相当于该对象的成员变量
-
数组初始化:
-
动态初始化:
数据类型[] 数组名称 = new 数据类型[数组长度]
public static void main(String[] args) { int[] arr = new int[5]; //动态初始化 arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); } } -
静态初始化:
1)数据类型[] 数组名称 = new 数据类型{元素1, 元素2,元素3}
2)数据类型[] 数组名称 = {元素1, 元素2, 元素3}
public static void main(String[] args) { int[] arr = new int[]{1, 2, 3, 4}; //静态初始化(1) for (int i = 0; i < arr.length; i++) { System.out.print(arr[i]); } System.out.println(""); int[] arr2 = {5, 6, 7, 8}; //静态初始化(2) for (int i = 0; i < arr2.length; i++) { System.out.print(arr2[i]); } }
-
创建声明数组
-
使用数组必须先声明,才能在程序中使用。
dataType[] arrayRefVar; //声明数组 -
数组声明之后还需要创建。
dataType[] arrayRefVar = new dataType[5]; //创建长度为5的数组注意:数组里面的元素都是通过索引访问的,索引是从0开始的。
数组里面的元素如果没有赋值的话,会有默认值(如:数值默认0,String默认null)。
数组的使用
- 数组可以通过利用该数组下标进行调用,如:
for循环调用:
int[] arr2 = {5, 6, 7, 8};
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i]);
}
forEach调用:
for (int x : arr2) { //输出数组的所有元素,但不可获取数组下标
System.out.print(x + "++");
}
- 用数组作为方法的参数:
public static void array(int[] arr2){ //定义一个输出数组的方法
for (int i = 0; i < arr2.length; i++) {
System.out.print(arr2[i]);
}
public static void main(String args[]){
int[] array = {1,2,3,4,5};
array(array); //调用方法,输出数组array的元素
}
多维数组
一般来说,Java里面是没有二维的说法的,二维数组是指一个特殊的一维数组,其中每个元素又是一个数组。
int[][] arrrays = new int[2][3]; //定义个二行三列的二维数组
- 多维数组的使用:
public static void main(String[] args) {
int[][] array = {{0,0},{1,1},{2,2},{3,3}}; //定义一个4行2列的二维数组
System.out.println(array[1][1] + " "); //输出二维数组
for (int i = 0; i < array.length; i++) { //通过遍历输出二维数组所有元素
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j]);
}
}
}
Arrays类(可查看jdk帮助文档)
-
数组工具类java.util.Arrays
-
Arrays类中的方法都是static修饰的静态方法,使用时直接用类名进行调用,而不需要用对象来调用。
-
一般Arrays类具有以下几种:
1)
toString:返回指定数组的内容的字符串表示形式。
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5};
String a = Arrays.toString(array); //调用Arrays中toString方法将数组输出;
System.out.println(a); //[1, 2, 3, 4, 5]
}
2)sort:将指定的数组排序升序。
int[] array1 = {4, 33, 2, 44, 6};
Arrays.sort(array1); //将array1进行升序排序
System.out.println(Arrays.toString(array1)); //[2, 4, 6, 33, 44]
3)hashCode:返回基于数组的内容的哈希代码。
int[] array1 = {4, 33, 2, 44, 6};
int b = Arrays.hashCode(array1); //将array1转换成哈希代码
System.out.println(b); //30602190
4)fill:
fill(int[] a, int val):将指定的int值来指定数组的每个元素的值。fill(int[] a, int fromIndex, int toIndex, int val):指定int值为指定数组的每个元素对象的指定范围。
第一种fill方法:
int[] array1 = {4, 33, 2, 44, 6};
Arrays.fill(array1, 1); //将指定的int值来指定数组的每个元素的值
System.out.println(Arrays.toString(array1)); //[1, 1, 1, 1, 1]
第二种fill方法:
int[] array1 = {4, 33, 2, 44, 6};
Arrays.fill(array1,1,3,8); //将索引为1到3(不包括3)的元素赋值8
System.out.println(Arrays.toString(array1)); //[1, 8, 8, 1, 1]
5)binarySearch:搜索指定数组中的值指定的值使用二进制搜索法。应先进行sort排序。
int[] array1 = {1, 8, 8, 1, 1};
int c = Arrays.binarySearch(array1, 8); //搜索array1中元素为8的值有几个
System.out.println(c); //2

浙公网安备 33010602011771号