数组的声明:int [ ] nums; //int nums [ ] 也可以,但不建议使用。
使用new来创建数组(分配空间):int [ ] mums = new int [10] (这是声明+创建,里面可以存放10个int数字)
获取数组的长度:nums.length
静态初始化:int [ ] a = {1,2,3,4,5}; //创建+赋值,空间为5创建后不可改变。
动态初始化:int [ ] b = new int [5];
b[0] = 1; b[1] = 2; ……
*数组是引用类型,未赋值都输出默认值(int默认是0)
String的默认值是null
除了八大基本类型都是引用类型*
数组的特点:①长度是确定的,一旦被创建,大小就不可以改变。
②其内所有元素必须是相同类型。
③数组中的元素可以是任何数据类型,包括基本类型和引用类型。
④数组对象本身是在堆中的(数组就是对象)
栈:存放基本变量(声明数组放到栈array)
堆:存放new的对象和数据(堆为数组分配内存空间)
ArrayIndexOutOfBoundsException:(报错)数组下标越界异常。
数组的使用:①普通for循环
②for-each循环:打印结果
③数组做方法入参(成为参数类型):对数组进行操作
④数组做返回值:例如反转数组
多维数组:
定义:int [ ] [ ] a = new int [2][5];
int[ ] [ ] array = { {1,2},{2,3},{3,4},{4,5} };
sout(array.length); //4
sout(array[0].length); //2
printArray(array[0]) //1 2
打印所有元素:
for (int i = 0;i<array.length;i++){
for(int j =0; j<array.length;j++){ //两层循环
sout(array[i][j]); } }
Arrays类(注意大写A,代表一个类):属于一个静态类,可直接调用,也是工具类。
import java.util.Arrays;
Array.toString:打印数组元素 Array.sort:对数组进行排序(升序)
fill:给数组赋值 equals:比较数组元素中元素值是否相等
binarySearch:对排序好的数组进行二分查找
例如:int [ ] a = {1,5,7,2,9};
sout(Arrays.toString(a)); //输出[1,5,7,2,9]
Arrays.sort(a); sout(Arrays.toString(a)); //输出[1,2,5,7,9]
Array.fill (a,0); sout(Arrays.toString(a)); //输出[0,0,0,0,0]
Array.fill (a,2,4,0); sout(Arrays.toString(a)); //输出[1,2,0,0,9]