数组
数组的定义
- 数组是相同类型数据的有序集合
- 数组描述的是相同类型的若干个数据,按照一i的那个的先后次序排列组合而成
- 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们
数组的声明和创建
- 首先必须声明数组变量,才能在程序中使用数组
dataType[ ] arrayRefVar 或 (首选)
dataType arrayRefVar[ ] (C与C++中也是这样)
- Java语言使用new操作符来创建数组
dataType[ ] arrayRefVar = new dataType[arraySize]
- 数组的元素是通过索引访问的,数组索引从0开始
- 获取数组长度:array.length
package com.ycy;
public class demo {
public static void main(String[] args) {
int[] nums; //声明数组变量
nums = new int[10]; //创建一个数组
int[] nums2 = new int[10]; //把声明和创建写到一起
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=4;
nums[4]=5;
nums[5]=6;
nums[6]=7;
nums[7]=8;
nums[8]=9;
nums[9]=10;
//给数组赋值
System.out.println(nums[1]);
int sum = 0;
for (int i = 0; i <nums.length; i++) {
sum=sum+nums[i];
}
System.out.println(sum);
}
}
数组的四个基本特点
- 其长度是确定的,数组一旦被创建,它的大小就是不可以改变的
- 其元素必须是相同类型,不允许出现混合类型
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型
- 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
- 数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的
数组边界
下标的合法区间[0,length-1],如果越界就会报错
ArrayIndexOutOfBoundsException
小结
- 数组是相同数据类型(可以为任意类型)的有序集合
- 数组也是对象,数组元素相当于对象的成员变量
- 数组长度是确定的,不可变的
数组的使用
- for-each循环
增强for循环
package com.ycy;
public class demo {
public static void main(String[] args) {
int a[] = {1,2,3,4};
for (int i : a) {
System.out.println(i);
} // a代表数组 前面的i相当于遍历数组中的每一个数
}
}
- 数组作方法入参
打印数组
package com.ycy;
public class demo {
public static void main(String[] args) {
int[] a={1,2,3,4,5,6};
print(a);
}
public static void print(int[] b){
for (int i = 0; i <b.length ; i++) {
System.out.println(b[i]);
}
}
}
- 数组作返回值(c语言不行)
反转数组
package com.ycy;
public class demo {
public static void main(String[] args) {
int[] a = {1,2,3,4,5,};
int[] b = reverse(a);
print(b);
}
public static int[] reverse(int[] array){
int[] result=new int[array.length];
for (int i = 0,j= result.length-1; i < array.length ; i++,j--) {
result[j] = array[i];
}
return result;
}
public static void print(int[] b){
for (int i = 0; i <b.length ; i++) {
System.out.println(b[i]);
}
}
}
多维数组
- 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
- 二维数组
int a[ ] [ ] = new int[2] [5] int a[ ] [ ] = { {1,2},{3,4},{4,5} };
可以看成一个两行五列的数组
- 二维数组的length方法只看最外层的
package com.ycy;
public class demo {
public static void main(String[] args) {
int[][] array = {{1,2},{3,4},{5,6}};
for (int i = 0; i < array.length ; i++) {
for (int j = 0; j <array[i].length ; j++) {
System.out.println(array[i][j]);
}
}
}
}