数组
数组存放在堆内存中,是引用数据类型,只能存放Java对象的内存地址。
·优点:查找某个下标上的元素效率极高
1.数组以第一个元素内存地址已知
2.数组上每个内存地址是连续的
3.数组中每个元素所占空间大小是一样的
4.知道下标,所以知道偏移量,就能够算出指定下表内存地址
所以数组是查找效率最高的数据结构
(数组中存储100个元素和100W个元素检索效率是相同的,数组中不会一个一个找,是通过数学表达式算出来然后直接定位)
·缺点:
1.由于为了保证每个元素的内存地址连续,所以在数组上随机删除或增加元素效率较低,因为会涉及到后面元素同一向前向后位移的操作。(对最后一个元素增删,没有效率影响)
2.数组不能存储大数据量,很难在内存空间上找到特别大的连续内存空间
声明一维数组语法:
int[] arrary1;
double[] arrary2;
boolean[] array3;
String[] array4;
Object[] array5;
初始化一维数组:
·静态初始化
int[] array={100,200,330}
·动态初始化一维数组:
int[] array= new int[5]; //5表示元素个数,默认值为0
第一个元素 a[0],最后一个元素a[a.length-1]
遍历一位数:
for(int i=0;i++;i<a.length){
System.out.println(a[i]);
}
数组下标越界异常:ArrayIndexOutOfBoundsException
静态初始化:
Object o1=new Object();
Object o2=new Object();
Object o3=new Object();
Object[] objects={o1,o2,o3};
或者:Object[] objects={new Object(),new Object(),new Object()};
定义 输出数组:
public class Test {
public static void main(String[] args) {
int[] a={
1,2,3};
print(a);
System.out.println("===================");
int[] b=new int[3];
print(b);
System.out.println("===================");
print(new int[3])