数组是相同类型数据的有序集合。
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。
其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。
int[] nums;//声明一个数组
//数组类型[] 数组名;
nums = new int[10];//创建一个数组
//数组名 = new 数组类型[容量];
也可以一起写
int [] num2 = new int[20];
//语法 数组类型 [] 数组名 = new 数组类型[数组容量];
数组元素是通过索引访问的,数组索引从0开始。
获取数组长度:
arrays.length
存放new的对象和数组
可以被所有的线程共享,不会存放别的对象引用
存放基本变量类型(会包含这个基本类型的具体数值)
引用对象的变量(会存放这个引用在堆里面的具体地址)
静态初始化
不需要new操作符,可以直接创建一个数组
//静态初始化 创建+赋值
int[] nums3 ={1,2,3,4,5,6};
动态初始化
// 动态初始化
int[] nums4 = new int[10];
nums4[0]=1;
nums4[1]=1;
nums4[2]=1;
nums4[3]=1;
nums4[4]=1;
nums4[5]=1;
nums4[6]=1;
nums4[7]=1;
默认初始化
整形数组 默认初始值为0;
布尔数组默认初始值为 false;
String 数组以及 对象数组初始值为 null.
其长度是确定的。数组一旦被创建,它的大小是不可以改变的。
其元素必须是相同类型,不允许出现混合类型.
数组走的元素可以是任何的数据类型,包括基本类型和引用类型。
数组变量属于引用类型,数组也可以看作对象,数组中的每个元素相当于该对象中的成员变量。
数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
public static void main (String[]args){
int[] a = new int[2];
System.out.println(a[2]);
}
ArrayIndexOutOfBoundsExceptiom:数组下标越界异常!
数组是相同数据类型(数据类型可以为任意类型)的有序集合。
数组也是对象。数组元素相当与对象的成员变量
数组长度是固定的,不可以越界,如果越界则报:ArrayIndexOutOfBoundsExceptiom
它可以在不使用下标的情况下使用遍历数组,格式如下:
for(type element:arry){
System.out.println(element)
}
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:
String str [][] = new String[3][4]
str数组可以看做一个三行四列的数组,把单行的数组提升至一个平面,利用两个下标来确定一个元素。
ava.util.Arrays 类能方便地操作数组,它提供的所有方法都是静态的。
具有以下功能:
给数组赋值:通过 fill 方法。
对数组排序:通过 sort 方法,按升序。
比较数组:通过 equals 方法比较数组中元素值是否相等。
查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
具体说明请查看下表:
序号 | 方法和说明 |
---|---|
1 | public static int binarySearch(Object[] a, Object key) 用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。 |
2 | public static boolean equals(long[] a, long[] a2) 如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
3 | public static void fill(int[] a, int val) 将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
4 | public static void sort(Object[] a) 对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。 |
原文:https://www.cnblogs.com/is0919/p/14493554.html