LinkedList其实也就是我们在数据结构中的链表,这种数据结构有这样的特性:
- 分配内存空间不是必须是连续的;
- 插入、删除操作很快,只要修改前后指针就OK了,时间复杂度为O(1);
- 访问比较慢,必须得从第一个元素开始遍历,时间复杂度为O(n);
LinkedList其实也就是我们在数据结构中的链表,这种数据结构有这样的特性:
1、分配内存空间不是必须是连续的;
2、插入删除操作很快,时间复杂度为O(1);
3、访问比较慢,必须从第一个元素开始遍历,时间复杂度为O(n);
ADD方法
boolean add(E e):在链表后添加一个元素,如果成功,返回true,否则返回false
void addFirst(E e):在链表头部插入一个元素;
addLast(E e):在链表尾部添加一个元素;
void add(int index,E element):在指定位置插入一个元素。
remove方法
E remove();移除链表中第一个元素;
boolean remove(Object o):移除链表中指定的元素;
E remove(int index):移除链表中指定位置的元素;
E removeFirst():移除链表中第一个元素,与remove类似;
E removeLast():移除链表中最后一个元素;
boolean removeFirstOccurrence(Object o):移除链表中第一次出现所在位置的元素;
boolean removeLastOccurrence(Object o):移除链表中最后一次出现所在位置的元素;
get方法
E get(int index):按照下边获取元素;
E getFirst():获取第一个元素;
E getLast():获取第二个元素;
push、pop、poll方法
void push(E e):与addFirst一样,实际上它就是addFirst;
E pop():与removeFirst一样,实际上它就是removeFirst;
E poll():查询并移除第一个元素;
peek方法
E peek():获取第一个元素,但是不移除;
E peekFirst():获取第一个元素,但是不移除;
E peekLast():获取最后一个元素,但是不移除;
offer方法
boolean offer(E e):在链表尾部插入一个元素;
boolean offerFirst(E e):与addFirst一样,实际上它就是addFirst;
boolean offerLast(E e):与addLast一样,实际上它就是addLast;
还有很多方法,就不一一列举了,剩下的自己去慢慢研究把
先进先出与先进后出
public class Mode1 {
private LinkedList<Object> linkedList;
public Mode1() {
linkedList = new LinkedList<Object>();
}
public void put(Object object) {
linkedList.add(object);
}
public Object get() {
Object object = null;
if (linkedList.size() != 0) {
object = linkedList.get(0);
linkedList.remove(0);
}
return object;
}
public boolean isEmpty() {
if (linkedList.size() != 0) {
return true;
} else {
return false;
}
}
public static void main(String[] args) {
Mode1 demo01 = new Mode1();
demo01.put("1");
demo01.put("2");
System.out.println(demo01.get());
System.out.println(demo01.get());
System.out.println(demo01.isEmpty());
}
}