简介
继续第2节内容,我们现在开始讲Java的数组(精讲)
一、Java数据类型之数组
1、概念:
![](https://img-blog.csdnimg.cn/92ff8103c4674285bb04e4d2cd57d83e.png)
可以简单抽象为这样的👉
2、数组的元素
3、数组的声明
①Type[ ] arrayName;
例如:
int[] intArray;//这里的“[]”就代表我们声明了一个inArray的整型数组
String[] stringArray;//同理,声明的是一个stringArray的字符数组
②Type arrayName[ ];
例如:
int intArray[]; //这里的“[]”也可以放在数组名的后面
String stringArray[];
4、数组的创建
创建格式:arrayName=new Type[arrayLength];
– 例如:
int[] ai; //先声明ai=new int[10];//然后创建
String[] s;//先声明s=new String[3];//后创建– 或者 可以将数组的声明和创建一并执行(常用)
int ai[]=new int[10];//直接声明+创建了一个长度为10的整型数组ai[10]– 可以在一条声明语句中创建多个数组(能一条声明同类型的多个数组,不同类型的不建议这样)
String[] s1=new String[3], s2=new String[8];
5、数组元素的初始化
int a[ ] = { 22, 33, 44, 55 };//长度会自己识别,省事
int a[ ] = new int[4];
a[0] = 22; a[1] = 33; a[2] = 44; a[3] = 55//这个和上一个是相等的操作结果
浮点型(0.0);
字符型(\u0000);
布尔型(false);
6、数组的引用
arrayName [index] 即: 数组名 [ 下标 ]
例如:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int myArray[]; //声明数组
myArray=new int[10]; //创建数组
System.out.println("Index\t\tValue");
for(int i=0; i<myArray.length;i++)
System.out.println(i+"\t\t"+myArray[i]); //证明数组元素默认初始化为0
//myArray[10]=100; //将产生数组越界异常
}
}
再来一个:
public class Main {
public static void main(String[] args) {
int[] a1 = { 1, 2, 3, 4, 5 };
int[] a2;
a2 = a1;
for(int i = 0; i < a2.length; i++)
a2[i]++;
for(int i = 0; i < a1.length; i++)
System.out.println( "a1[" + i + "] = " + a1[i] + "\t\t" + "a2[" + i + "] = " + a2[i]);
}
}
运行结果为:
以上这个例子说明:数组名是一个引用——a2[ ]引用的是a1[ ]的,所以即使a2[ ]++也不会改变元素的值,这下是不是对数组的声明、创建和初始化有了更深的认识了?
如果还没有,接着往下看这两个例子👇:
7、知识补充:Arrays类
其中sort()默认是升序的,例如:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] arr={1,4,3,6,7,9};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
若需要降序的,只需要在sort()中加入Collections.reverseOrder(),同时将int类型转为Integer类型,例如
import java.util.Arrays;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
Integer[] arr={1,4,3,6,7,9};
Arrays.sort(arr,Collections.reverseOrder());
System.out.println(Arrays.toString(arr));
}
}
8、多维数组
int[ ][ ] gradeTable;
gradeTable[ 0 ][ 1 ] 为42
gradeTable[ 3 ][ 4 ] 为93
gradeTable[ 6 ][ 2 ] 为78
①二维数组的声明和创建
int[ ][ ] myArray ;
int[ ][ ] myArray = new int[3][5] ;
int[ ][ ] myArray = { {1,2,2,9}, {9,4,0,3}, {3,0,0,7} };
int[ ][ ] myArray = new int[3][ ] ;
int[ ][ ] myArray ={ {1,9,4}, {0,2}, {0,1,2,3,4} };
②二维数组的长度
public class Main {
public static void main(String[] args) {
int[ ][ ] uneven = { { 1, 9, 4 }, { 0, 2}, { 0, 1, 2, 3, 4 } };
System.out.println("Length is: " + uneven.length );
}
}
求每行的长度:
public class Main {
public static void main(String[] args) {
// 声明并构造一个2维数组
int[ ][ ] uneven = { { 1, 9, 4 },{ 0, 2},{ 0, 1, 2, 3, 4 }};
// 数组的长度 (行数)
System.out.println("Length of array is: " + uneven.length );
// 数组每一行的长度(列数)
System.out.println("Length of row[0] is: " + uneven[0].length );
System.out.println("Length of row[1] is: " + uneven[1].length );
System.out.println("Length of row[2] is: " + uneven[2].length );
}
}
运行结果是:
如果代码太过抽象,那我们看看图解的:
结束语:
以上是Java入门的第3步,希望大家喜欢
下一节开始讲常用句型和表达式
喜欢的可以点赞+关注哈 ❤❤❤❤❤❤❤