import java.util.LinkedList;
/* 2017-02-18 09:57:08
* linkedlist 是list接口的实现类 是一个list 集合 可以根据索引随机访问集合中的元素
* 还实现了deque 接口 可以使用双端队列方法 既可以是栈 也可以是队列
* 内部实现是使用了链表的形式来保存集合中的元素
* 随机访问元素的性能较差 插入删除 性能较好 内部只需要改变 指针的地址即可
* vector 也是以数组的形式来存储集合元素 ,实现了线程同步,性能更加不好
*
*
*分析
****
* 都是线性表的两种典型实现
* arraylist 基于数组的线性表
* linkedlist 基于链表的线性表 不仅有list 的功能 还实现了deque 的 具有 双端队列、栈的功能
*
* queue 队列
* deque 双端队列 既可以是队列也可是作为栈
*
* 数组是以一块连续的内存区来保存所有的元素 随机访问的性能较好 内部以数组作为底层的实现的集合 在随机访问的性能都较好
* 内部以链表实现的 插入删除 性能较好
* 总体来说 arraylist性能比linkedlist 性能较好
* 大部分时候都应该是使用arraylist
*
*
*
* list 集合建议
* 遍历list 集合元素 arraylist vector集合 应该使用 随机访问 方法 get 来遍历 性能更好
* 遍历linkedlist 是用迭代器 iterator 来遍历集合
*
* 经常 插入 删除 操作大量数据的list集合的大小 可以使用linkedlist
* arraylist、vector 集合可能需要经常重新分配内存数组的大小 效果不好
*
* 多线程需要同时访问list集合的元素时,应该考虑使用collections 集合包装成线性安全的集合
*
*
*/
public class Linkedlistj {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
linkedList.add("a"); //list 方法
linkedList.offer("b"); // deque方法
for (int i = 0; i < linkedList.size(); i++) {
// Object object = linkedList.get(i);
// System.out.println(object);
System.out.println(linkedList.get(i)); // list 遍历
}
System.out.println(linkedList.peekLast());
}
}