Java中LinkenList数据结构->链表
链式存储,Sequential Access:
这种方式,每一个数据元素,在内存中都不要求处于相邻的位置,每个数据元素包含他的下一个元素的内存地址,不可以根据元素的位置直接计算出内存地址,只能按照顺序读取元素。主要是以链表为代表。
1.传统的for循环遍历,基于计数器的:
遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到一最后一个元素后停止。主要是需要按元素的位置来读取。这也是最原始的集合遍历方法。
LinkedList链表,对于链式存储(size=n)读取一个特定位置元素的平均时间复杂度约为O(n/4),遍历整个集合的平均时间复杂度约为O(n^2/4) ,即四分之一n的平方)
代码实现:
public static void forTest(List<String> list){
int size = list.size();
for(int i=0;i<size;i++) {
String v = list.get(0);
}
}
源码分析:new LinkenList().get()
数据结构:Node链表
private static class Node<E> {
E item;
Node<E> next;
Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
this.item = element