数据结构的基本操作

栈(Stack)

import java.util.Stack;	//引用栈
//初始化
Stack<Integer> stack = new Stack<Integer>();
//进栈
stack.push(Element);
//出栈取栈顶值
stack.pop();
//不出栈取栈顶值
stack.peek();
//判断栈是否为空
stack.isEmpty()

链表(LinkedList)

import java.util.LinkedList;	//引用链表
//初始化
LinkedList<Integer> list =new LinkedList<>();
增加:
add(E e):在链表后添加一个元素;   通用方法
addFirst(E e):在链表头部插入一个元素;  特有方法
addLast(E e):在链表尾部添加一个元素;  特有方法
push(E e):与addFirst方法一致  
offer(E e):在链表尾部插入一个元素                                                                                                                                                  add(int index, E element):在指定位置插入一个元素。      
offerFirst(E e):JDK1.6版本之后,在头部添加; 特有方法                                                                                                         offerLast(E e):JDK1.6版本之后,在尾部添加; 特有方法

删除:
remove() :移除链表中第一个元素;    通用方法  
remove(E e):移除指定元素;   通用方法
removeFirst(E e):删除头,获取元素并删除;  特有方法
removeLast(E e):删除尾;  特有方法
pollFirst():删除头;  特有方法
pollLast():删除尾;  特有方法
pop():和removeFirst方法一致,删除头。 
poll():查询并移除第一个元素     特有方法    

查:
get(int index):按照下标获取元素;  通用方法
getFirst():获取第一个元素;  特有方法
getLast():获取最后一个元素; 特有方法
peek():获取第一个元素,但是不移除;  特有方法
peekFirst():获取第一个元素,但是不移除; 
peekLast():获取最后一个元素,但是不移除;
pollFirst():查询并删除头;  特有方法
pollLast():删除尾;  特有方法
poll():查询并移除第一个元素     特有方法


队列

import java.util.Deque;
import java.util.Iterator;
import java.util.LinkedList;
Deque<Integer> queue = new LinkedList<>();
add方法	往队列尾部加入元素
addFirst方法	往队列首部加入元素
addLast方法	往队列尾部加入元素
contains方法	判断队列中是否包含某个元素
descendingIterator方法	以相反的顺序返回deque
element方法	检索但不删除返回队列的头部
getFirst方法	与element相同,检索但不删除返回第一个元素,具体不知道为什么会有重复的方法,应该是版本更新兼容吧,就语义来说这个好一点
getLast方法	检索并返回最后一个元素
iterator方法	以正确的顺序返回此元素的迭代器
offer方法	将指定元素插入该元素的尾部,返回true或者false,与add的区别是add当没有可用空间时会抛异常,而offer返回false
offerFirst方法	在双端队列头部插入元素
offerLast方法	在双端队列尾部插入元素,同offer一样,为了Queue和Deque兼容
peek()方法和peekFirst/peekLast方法	返回但不删除双端队列的首元素/尾元素
poll方法和pollFirst/pollLast方法	poll检索并删除队列的首元素,pollFirst也是,pollLast检索并删除队列的尾元素
pop方法	pop从这个deque表示的堆栈中弹出一个元素,与poll不同的是pop当为空时会报异常,而poll会返回null
push方法	在此deque的首部添加元素
remove方法以及removeFirst/removeLast方法	remove和removeFirst检索并删除队列中第一个元素,removeLast检索并删除队列中最后一个元素(同poll相同,就不演示了)
size方法	返回元素数

Stack,ArrayDeque,LinkedList的区别

 *  1. 三者都是 Collection的间接实现类。ArrayDeque实现Deque接口,Stack继承于Vector,LinkedList实现Deque与List接口。
 *  2. Stack底层是长度为 10的数组,ArrayDeque底层是长度为 16的数组,LinkedList底层是链表
 *  3. Stack是线程安全,其余均为线程不安全。
 *  4. 频繁的插入、删除操作:LinkedList
 *     频繁的随机访问操作:ArrayDeque
 *     未知的初始数据量:LinkedList

用法概要

 *
 *   针对链表
 *     add:增加元素
 *     remove:删除元素
 *
 *   队列
 *     poll;弹出队头
 *     offer:在队尾加入新的元素
 *
 *   栈
 *     pop:弹出栈顶元素
 *     pull:栈顶加入元素

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值