Java数组
Java数组
Java数组概述
- 数组是相同类型数据的有序集合
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
- 数组中,每一个数据称之为一个数组元素,每个数组元素可以通过一个数组下标来访问
数组特点
-
数组的长度是确定的,数组一旦被创建,它的大小是不可以改变的
-
数组中的元素类型必须相同,不允许出现混合类型
-
数组中元素的类型可以是任何类型,包括基本数据类型和引用数据类型
-
数组变量属于引用类型,数组也可以看成对象,数组中每个元素相当与该对象的成员变量。
数组本身就是对象,Java对象都是存储在堆中的,因此数组无论保存什么数据都是存储在堆中,数组对象本身就是在堆中
创建数组
//动态初始化
int[] array1; //声明一个数组array1
array1 = new int[10];//给数组分配空间
array1[0] = 1;
array1[1] = 2;
array1[2] = 3;
array1[3] = 4;
array1[4] = 5;//给数组中元素赋值
//静态初始化
int array2[];//声明一个数组array2
array2 = new int[]{1,2,3,4,5,6,7,8,9,0};//给数组分配空间并赋予初值
//数组的长度是固定的,创建数组时必须指定长度
//动态初始化时包含静态初始化的,每个数组元素动态初始化时都有默认值
数组的相关方法
获取数组的长度
int[] nums = new int[5];
int length = nums.length;//获取数组的长度
数组声明内存情况

扩展:Arrays类
java.util.Arrays类能方便的操作数组,它所有的方法都是静态的。
-
fill方法 :给数组中的某段元素附上相同值。
-
sort方法:对数组中某段元素排序。
-
equals方法:比较两个数组,判断的是数组中元素值是否相等。
-
binarySearch方法:对排过序的数组进行二分法查找。
public class UsingArrays {
/**
* 整形数组的输出
*/
public static void output(int[] array){
if(array != null){
for(int i = 0 ; i < array.length; i++){
System.out.println(array[i] + " ");
}
}
System.out.println();
}
public static void main(String[] args){
//填充数组,将array[]中所有元素的值初始为0
int[] array0 = new int[5];
Arrays.fill(array0,5);
System.out.println("调用Arrays.fill(array0,5)后:");
UsingArrays.output(array0);
//将array0中的第2个到第三个元素的值赋为8
Arrays.fill(array0, 2, 4, 8);
System.out.println("调用Arrays.fill(array0,0,2,4,8)后:");
UsingArrays.output(array0);
//对数组进行排序
int[] array1 = new int[] { 7, 8, 3, 12, 6, 3, 5, 4};
//对数组的第二个到第6个元素进行排序
Arrays.sort(array1, 2, 7);
System.out.println("调用Arrays.sort(array1, 2, 7)后:");
UsingArrays.output(array1);
//对整个数组进行排序
Arrays.sort(array1);
System.out.println("调用Arrays.sort(array)后:");
UsingArrays.output(array1);
//比较数组元素是否相等
System.out.println(Arrays.equals(array0,array1));
int[] array2 = (int[]) array1.clone();
System.out.println("array1和array2是否相等?"
+ Arrays.equals(array1,array2));
//使用二分法在数组中查找指定元素所在的下标
//数组必须是先排好序的
Arrays.sort(array1);
System.out.println("元素3在array1中的位置:"
+ Arrays.binarySearch(array1,3));
//如果不存在,就返回负数
System.out.println("元素9在array1中的位置:"
+ Arrays.binarySearch(array1,9));
}
}
输出:
调用Arrays.fill(array0,5)后:5 5 5 5 5
调用Arrays.fill(array0,0,2,4,8)后: 5 5 8 8 5
调用Arrays.sort(array1, 2, 7)后: 7 8 3 3 5 6 12 4
调用Arrays.sort(array)后: 3 3 4 5 6 7 8 12
false
array1和array2是否相等?true
元素3在array1中的位置:1
元素9在array1中的位置:-8

浙公网安备 33010602011771号