数组简介
数组是内存中联系的一段空间。同一个数据内的查找,速度是非常快得。一般数据是java集合框架Collection的底层实现,和另一种链表。除了基本数据类型外,数组在数据结构里的重要性不言而喻。
数组的创建方式
01: int[] names = {"李","赵"}
数组是引用类型的,names在栈中,”李“,“赵”,在堆中
02: int[] names = new int[10]
在内存中开辟了一个长度为10的空间
数组的查找操作
数组可以通过下标,获取内存中连续空间的引用。因为数组在内存中是一段。连续的空间,所以数组的下标引用,获取值得速度是非常快的。相反的,要插入改变一个数组,要移动连续的数组内对象,所以插入的速度是相对慢的。
01: int n = name【2】
通过下标2,可以查找到下标为2的值。下标从0开始。
数组的插入操作
数组的插入数据。为了保持下标引用的特性,在最糟糕的情况要移动整个数组,往前移动一位,所以插入的速度是相对慢的,O(N)
01: 数组是引用类型的,names在栈中,”李“,“赵”,在堆中
name[i+1] = name [i];
数组的删除操作
和插入数据一样,为了保持下标引用的特性,数组删除的下标,后面的所有值,都要往前移动一个位置。O(N)
01: name[i] = name [i+1];
collection集合框架使用了面向对象的思想封装对对数组的操作
数组的排序算法
1数值型数组的排序算法
1-1冒泡排序
1-2选择排序
1-3插入排序
2对象型数组的排序算法
2数组的查找算法
2-1通用数值型的排序算法,通过对象的某个属性如:age。按照年龄做排序。
2-2字符串类型属性,通过compareTo方法