一、数组的基本概念
1、什么是数组
数组是相同类型元素的集合。
创建数组的时候,Java就会再内存中分配一段连续的空间来存放数组的内容。
每一个数组内容都有自己的编号,这个编号从0开始的,也就是数组的下标从0开始。通过数组的下标来访问数组的内容。
2、一维数组的创建和初始化
创建一个数组:
T[] 数组名 = new T[N];
T:数组中元素的类型。
T[]:表示是数组类型,[]也可以放在数组名的后面。这里的[]不能有任何的数组
N:创建数组要的长度。
int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组
double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组
String[] array3 = new String[3]; // 创建一个可以容纳3个字符串元素的数组
int[] array1 = new int[10]; // 创建一个可以容纳10个int类型元素的数组 double[] array2 = new double[5]; // 创建一个可以容纳5个double类型元素的数组 String[] array3 = new String[3]; // 创建一个可以容纳3个字符串元素的数组
要对数组进行初始化,有两种方式。
静态初始化:知道数组的内容,就可以静态初始化。
int[] arr = { 1,2,3,4 }; //省略情况 int[] arr = new int[] { 1,2,3,4 };//可以省略new int[]
当然,我们可以对数组的内容进行修改。将上面的array[0]改为20:
array[0] = 20;
System.out.println(array[0]);
2、数组的遍历
在Java中,对数组的遍历有两种方式:第一种是for,第二种是增强for(foreach)。
由于Java是面向对象的语言,在Java中,一切都是对象,比如数组。数组这个对象有它的属性,比如数组的长度等,基于这一点,我们可以不用刻意知道数组的长度,使用.length来获取数组的长度。
//for int[]array = new int[]{10, 20, 30, 40, 50}; for(int i = 0; i < array.length; i++){ System.out.println(array[i]); }
//foreach int[] array = {1, 2, 3}; for (int x : array) { System.out.println(x); } //说明: //int x :array //数组中的数据类型+变量名,这里array数组里面的类型是int //array是数组名
//foreach double[] array = {1.0, 2.0, 3.0}; for (double x : array) { System.out.println(x); }
数组常用的方法
Arrays.toString方法
将一维数组变成字符串。二维数组使用Arrays.deepToString方法。
Arrays.copfOf方法
从0下标来时复制指定长度数组的内容到新的数组中。
Arrays.copyOfRange方法
和Arrays.copfOf方法类似,这个是指定范围的拷贝。范围是左闭右开区间。
public static void main(String[] args) { int[] array = new int[] { 1,2,3,4 }; int[] ret = Arrays.copyOfRange(array,2,4); System.out.println(Arrays.toString(ret));//[3,4] }
Arrays.sort方法
对数组进行升序排序。
Arrays.equal方法
判断两个数组的内容是否相同
Arrays.binarySearch方法
二分查找数组内容,使用前先sort排序数组。
常见异常
NullPointerException 空指针异常
ArrayIndexOutOfBoundsException 索引值越界