一、数组概要
数组是一种引用数据类型
数组元素的类型可以是基本类型,也可以是引用类型,
但同一个数组只能是同一种类型
数组元素是有下标的,下标从
0
开始,也就是第一个元素的下标为
0
,依次类推最后一个
元素的下标为
n-1
二、一维数组的声明和使用
1、数组的声明
一位数组的声明格式:
数组元素的类型[] 变量名称
数组元素的类型 变量名称[]
在一行中也可以声明多个数组 int[] a,b,c
2、数组的创建
第一种,使用
new
操作符来创建数组,格式为:
new
数组元素的数据类型
[
数组元素的个数]
基本类型的数组
int[] data = new int[6];
data[0] = 1;
data[1] = 2;
data[2] = 3;
采用 length 属性可以取得数组的长度 data.length
引用类型的数组
声明引用类型的数组
Student[] student = new Student[2]
初始化数组元素为Student对象
student[0] = new Student();
student[0].id = 1001;
student[0].name = "张三";或者
Student zhangsan = new Student();
zhangsan.id = 1001;
zhangsan.name = "张三";
student[0] = zhangsan
第二种
第二种,使用数组的初始化语句,格式为:数组元素的类型
[]
变量名称
= {
数组元素
1
,
数组元素
2,......
数组元素
n}
或数组元素的类型 变量名称
[] = {
数组元素
1
,数组元素
2,......
数组元素
n}
基本数据类型
int[] data = {1, 2, 3, 4, 5};
引用数据类型
Student zhangsan = new Student();
zhangsan.id = 1001;
zhangsan.name = "
张三
";
Student[] students = {zhangsan, lisi};
三、二维数组的声明和使用
二维数组的声明格式如下:
1.
数组元素的数据类型
[][]
变量名;
2.
数组元素的数据类型 变量名
[][]
;
在这里介绍三种二维数组的创建方式:
采用new关键字直接创建
二维数组的遍历
//声明二维数组
int[][] data = new int[2][3];
//对二维数组赋值
data[0][0] = 1;
data[0][1] = 2;
data[0][2] = 3;
for (int i=0; i<data.length; i++) {
for (int j=0; j<data[i].length; j++) {
System.out.println(data[i][j]);
}
}
从高维逐维创建
//从高维开始逐维创建
int[][] data = new int[2][];
data[0] = new int[2];
data[1] = new int[4];
data[0][0] = 1;
data[0][1] = 2;
data[1][0] = 1;
data[1][1] = 2;
data[1][2] = 3;
采用初始化语句块创建数组对象
多个数组之间用逗号隔开
int[][] data = {{1,2}
,
{1,2,3,4}};
四、Arrays工具类
1、Arrays.sort的使用(排序)
import java.util.Arrays;
public class ArraysUtilTest01 {
public static void main(String[] args) {
int[] data = {3,1,6,2,5};
Arrays.sort(data);
for (int i=0; i<data.length; i++) {
System.out.println(data[i]);
}
System.out.println("----------------");
for (int i=data.length-1; i>=0; i--) {
System.out.println(data[i]); } } }
2、Arrays.binarySearch(二分法查找)
建立在排序基础之上
import java.util.Arrays;
public class ArraysUtilTest02 {
public static void main(String[] args) {
int[] data = {3,1,6,2,5};
Arrays.sort(data);
for (int i=0; i<data.length; i++) {
System.out.println(data[i]); }
System.out.println("");
int index = Arrays.binarySearch(data, 3);
System.out.println("index=" + index);
}
}