在java中,数组是查询性能最高的数据类型,同时也是集合类型的底层实现。
内存结构
String[] array = new String[10];
数组寻址
- 第n个元素的内存地址 = 第1个元素的内存地址 + 数组下标 * 元素类型长度 。
查询性能测试
以下创建一个5亿长度的数组,并添加5亿个数据元素,执行5亿次查询。 public static void main(String[] args) throws InterruptedException {
//创建一个5亿元素的数组
int size=500000000;
int[] s = new int[size];
for(int i=0;i<s.length;i++) {
s[i] = i;
}
//记录时间点1
long time1 = System.currentTimeMillis();
int temp;
//执行5亿次查询
for(int i=0;i<size;i++) {
temp = s[i];
}
//记录时间点2
long time2 = System.currentTimeMillis();
System.out.println(time2-time1);
}
增删改性能
无论什么结构,首先要通过查询进行定位,找到要操作的具体位置,才能执行增删改。由于数组可以直接定位,查询性能最高,直接带动增删改的性能都非常高。而有些其他结构,无法直接定位,需要逐个查找,整体性能会逊色很多,以后会具体讲。
数组特性
- 数组中元素类型必须一致,这样才能保证每个元素的长度一致。否则寻址公式无效。
- 数组长度是固定的,因为要计算内存地址,数组必须连续存储。而数组前后的内存有可能被其他数据占用,导致数组长度无法扩容。
2663



被折叠的 条评论
为什么被折叠?



