什么是数组 数组的概念
相同类型的数据的有序集合
其中每个数据称做一个数组元素,每个数组元素可以通过对应的下标来访问它们
数组的默认下标是从0开始的
数组的申明
dataType[] arrayRefVar; //首选方法,这个是java的最规划的命名方式
int[] nums; //这就是一个 int 类型的数组集合
dataType arrayRefVar[]; //这个效果和上面的一样,是早期 C类 语言的规范方式,但不建议使用
int nums[]; //这类是早期java为了兼容C类语言的写法;
创建数组
1、数组的长度是确定的,一旦创建,大小就不能改了
2、数组元素必须是相同类型的,不能混合类型
3、数组的元素可以是任何类型的,包括基本类型和引用类型
4、数组也是一个对象,它也是 new 出来的,java对象是在堆中的
5、java.lang.ArrayIndexOutOfBoundsException 这表示超出了数组
// 1、申明
int[] array = null; //申明了一个 int 类型的素组
//2、创建 数组一旦创建,它的大小就不可以改变了
array = new int[10]; //创建, 这是表示 10个 int 类型的数组
//3、赋值
array[0] = 1;
array[1] = 2;
//很多时候初始化,我们是将申明和创建一步完成的;
//1、静态初始化
int[] a = {1,2,3};
//2、动态初始化
int[] a = new int[2];
数组的使用
1、for 循环使用,这类是由下标的
2、for-each 循环,这类是没有下标的,在JDK 1.5以上版本使用
3、数组可以用作是参数,也可以是返回参数
int[] arr = {1,2,3};
for (int i : arr) { //for-each 模式;没有下标
System.out.println(i);
}
for (int i = 0; i < arr.length; i++) { //普通for模式,有下标
}
多维数组
1、超过一个维度的,就是嵌套素组
2、可以定义很多维
int[][] array = {{1,2},{2,3}};
array[1][0]; //这样获取
Arrays类
1、它是个工具类 java.util.Arrays
2、在API中提供的一个工具类Arrays,供我们使用;都是 static的,可直接使用
3、可以在JDK帮助文档里面看
4、常用的功能:
//给数组赋值:通过 fill 方法
Arrays.fill(a,2,3,0);
//对数组排序:通过 sort 方法,按照升序
//比较数组:通过 equals 方法比较数组中元素值是否相等
//查找数组元素:通过 binarySearch 方法能对排序号的素组进行二分查找
//排序之冒泡排序
public static int[] sort( int[] array){
int temp = 0;
for (int i = 0; i < array.length-1; i++) {
for (int j = 0; j < array.length-1-i; j++) {
if (array[j] > array[j + 1]){
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
return array;
}