JAVA的数据结构
所有JAVA的数据结构都是继承自Iterator类用来做迭代遍历,Iterator主要会区分开2种数据类型,第一种是集合类Collection,另一种是带映射关系的Map类,
关于Collection类,即使在无序不重复的Set中仍然可以分为无序的HashSet与强制进行排序的TreeSet,LinkedHashSet与TreeSet虽然都是有序但是排序方式是不同的,LinkedHashSet主要是依靠HashSet的插入顺序去排序的,而TreeSet主要是用我们插入对象的Object的Compare方法去做CompareTo的比较获得前后顺序。
1.ArrayList与LinkedList的区别
我相信学过数据结构的朋友都很熟悉,这是第一章的内容
ArrayList是内部以数组方式来实现的,是以一块完整连续是内存空间来实现的,LinkedList是内部以链表的方式进行实现的,如果进行读的操作,ArrayList的时间复杂度是O(1),因为只需要找到数组中的下标进行寻址即可,而LinkedList是依靠头结点依次遍历得到元素。所以时间复杂度是O(n)。若要进行删除和插入操作,则ArrayList要移动连续的元素,而LinkedLsit只需要做指针节点的改变即可满足要求,所以这样的操作他们的时间复杂度则恰好相反。