LinkedList
来源:互联网 发布:网络用语及图片 编辑:程序博客网 时间:2024/06/06 13:25
一、LinkedList常用方法
1、add(E e):在list的末尾追加元素e
2、addLast(E e):在list的末尾追加元素e
3、addFirst(E e):在list的头部插入元素e
4、remove(Object obj):移除元素obj
remove(int index):移除指定索引上的元素
5.get(int index):获取指定索引上的元素
二:LinkedList底层采用双向链表实现
三:ArrayList和LinkedList的比较
二者是List的不同实现方式,实现原理不同,只是先使用时的效果上,看起来一样
1、ArrayList底层采用数组实现,LinkedList底层采用双向链表实现
2、当执行插入或者删除操作时,采用LinkedList比较好
3、当执行搜索操作时,采用ArrayList较好
4、当向ArrayList添加一个对象时,实际上就是将该对象放置到了ArrayList底层所维护的数组当中;当向LinkedList中添加一个对象时,实际上LinkedList内部会生成一个Entry对象,该Entry对象的结构为:
Entry{
Entry previous;
Object element;
Entry next;
}
其中Object类型的element是我们向LinkedList中所添加的元素,然后Entry又构造好了向前与向后的引用previous、next,最后将生成的这个Entry对象加入到了链表当中。简言之,Linkedlist中所维护的是一个个的Entry对象
四、LinkedList实现Stack
1、栈(Stack):限定仅在表尾进行查如何删除,后进先出的数据结构、JDK中有Stack的实现类,但是实现效果不是很好
2、用LinkedList实现栈(stack)
LinkedList list = new LinkedList();
public void push(Object o)
{
list.addLast(o);
}
public Object pop()
{
return list.removeLast();
}
public Object peek()//查看栈顶元素但不弹出
{
return list.peekLast();//peekLast在list为空时,会取出空元素,但是getLast在列表为空时会抛出异常
}
public boolean isEmpty()
{
return list.isEmpty();
}
五、LinkedList实现队列Queue
1、Queue 是一种先进先出的数据结构,JDK只提供了队列的接口,没有具体实现
2、LinkedList模拟实现Queue
private LinkedList list = new LinkedList();public void put(Object o)
{
list.addLast(o);
}
public Object get()
{
return list.removeFirst();
}
public boolean isEmpty()
{
return list.isEmpty();
}
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- LinkedList
- WIFI基本知识整理
- 深入学习微框架:Spring Boot
- windows任务管理器中的工作设置内存,内存专用工作集,提交大小详解
- namespace
- BZOJ 3791: 作业
- LinkedList
- Xcode bug
- JAVA 源代码 【指定文件夹 搜索指定格式的后缀名 拷贝到 指定目录】
- 10+年程序员总结的20+条经验教训
- ZOJ 3780 Paint the Grid Again
- PHP模拟登陆正方系统获取课表、成绩(一看就懂!!!)
- Flickable和Flipable
- Spring MVC 中的基于注解的 Controller
- 欢迎使用CSDN-markdown编辑器