老黑讲Java之基础教程数组
1、什么是数组
说起数组,必须介绍数据结构的概念,数据结构就是把数据按照特定的结构保存起来,合理的数据结构可以快速的操作数据。
数组是最基本的一种数据结构。
2、什么是数组
1、数组是相同数据类型的元素组成的集合。
2、元素按线性顺序排列。线性排列是指一个元素接着一个元素(“一个跟一个”)。
3、可以通过元素所在位置(下标)做标识来访问每一个元素(下标从0开始,最大值到元素个数-1)
3、定义基本类型数组
1、声明数组的语法:
数组类型[] 数组名 = new 数组类型[数组大小];
2、例如:int[] array = new int [10];
4、定义数组的要点:
1、数组类型;
2、数组名称;
3、数组标识符[]
4、执行new之后才为数组分配指定的大小空间;
5、int[] arr 与 int arr[]两种写法均可;
6、声明数组时可以不规定数组长度,new关键字分配空间时需制定分配空间大小。
5、初始化数组
基本类型的数组创建后,元素的初始值:byte、short、char、int、long为0;float和double为0.0;boolean为false
1、数组的声明同时对数组的元素初始化,例如:
int[] arr = {1, 2, 3, 4, 5};
boolean[] boolArr = {true, false};
double[] doubleArr = {3.2, 4.5};
注:此种写法用于声明的初始化,不能用于赋值,下面错误代码编译错误: int[] arr;
arr = {1, 2, 3, 4, 5};
2、可以通过下面的方式声明的数组类型变量初始化:
int[] arr;
arr = new int[]{1, 2, 3, 4};
注:[]种不能写长度。
6、获取数组长度
调用数组的length属性可以获取数组的长度,代码如下:
int[] arr = new int[]{1, 2, 3, 4, 5};
int len = arr.length;
System.out.println("数组长度:"+len);//数组长度为5
7、下标访问数组元素
通过数组下标访问数组元素,代码如下:
int[] arr = new int[]{1, 2, 3, 4, 5};
int content = arr[0];
System.out.println(content);//内容为1
8、遍历数组元素
遍历数据元素,选择for循环语句,循环变量可以通过访问数组下标访问每一个元素。
public static void main(String[] args) {
int[] arr = new int[5];
for(int i=0;i<arr.length;i++) {
arr[i] = i;
}
}
1、数组的复制
使用System.arraycopy()可以复制数组
public static void copy(Object src, int srcPos, Object dest, int destPos, int length){
src表示源数组
srcPos表示源数组中的起始位置
dest表示目标数组
destPos表示目标数组中的起始位置
length表示要复制的数组元素的长度
}
demo代码如下:
public static void main(String[] args) {
int[] srcArr = {1, 2, 3, 4, 5};
int[] destArr = new int[6];
System.arraycopy(srcArr,0, destArr , 0, 5);
System.out.println(Arrays.toString(destArr));
}
2、使用Arrays.copyOf方法数组复制
1、使用java.util.Arrays类的copyOf方法实现数组复制
类型[] new Array = Arrays.copyOf(类型[] original, int newLength);
2、当newLength小于源数组,则进行截取;
当newLength大于源数组,则取0或null值填充。
3、产生的新数组可以大于源数组的长度
int[] arr = {1, 2, 3, 4};
int[] copyArr = Arrays.copyOf(arr, 5);
System.out.println(Arrays.toString(copyArr));
其中数组的许多方法是通过java.utils.Arrays调用的方法。
3、Arrays.sort方法数组排序
int[] arr = {2, 1, 4, 3, 5};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));