集合相关知识点

/**

  • 集合框架体系
    Collection父接口

  • List子接口
    子类
    ArrayList
    Vector
    Stack
    Queue
    Deque
    ArrayDeque
    LinkedList
    工具类Collections

  • Set子接口
    HashSet
    TreeSet
    Hastable
    Map
    HashMap
    TreeMap
    LinkedHashMap

  • Queue队列接口
    Deque双端子接口
    ArrayDeque双端实现类
    特点:
    对第一个元素和最后一个元素提供了更多方便操作的方法
    数据结构是基于数组的双端队列

  •          对容量大小可以设置,也是限制的
    
  •          数组双端队列没有容量限制;它们可根据需要增加以支持使用。
    
  •          此类很可能在用作堆栈时快于 Stack,在用作队列时快于 LinkedList。
    
  •          它们不是线程安全的,效率高
    
  •          常用的一种集合
    
    • 第一个元素(头部) 最后一个元素(尾部)
    • 抛出异常 特殊值 抛出异常 特殊值
    • 插入 addFirst(e) offerFirst(e) addLast(e) offerLast(e)
    • 移除 removeFirst() pollFirst() removeLast() pollLast()
    • 检查 getFirst() peekFirst() getLast() peekLast()
    • Queue 方法 等效 Deque 方法
    • add(e) addLast(e)
    • offer(e) offerLast(e)
    • remove() removeFirst()
    • poll() pollFirst()
    • element() getFirst()
    • peek() peekFirst()
    • 堆栈方法 等效 Deque 方法
    • push(e) addFirst(e)
    • pop() removeFirst()
    • peek() peekFirst()

/
/
*

  • ArrayList
  • 方法使用Collection和List父接口的
  • 开发中经常使用集合存储数据,提供很多方便的方法(增删改查)
  • 我们在开发中决定选择哪一个集合,就看这个集合的数据结构是什么
  • 数据结构:瓶装水装水方便你个人喝水,桶装水装水方便大家喝水
  • 某个集合是有自己的数据结构,就决定自己的特点
  • 特点:
  •  1.底层数据结构是数组(数组有索引,方便你根据索引位置进行查询某个元素)数据结构图
    
  •  2.可以存储null值
    
  •  3.不唯一,允许重复
    
  •  4.存储有序,不是指排序
    
  •  5.线程是不安全的(源码有没有锁)
    
  •  6.效率高的(根据数据结构决定的),决定我们会去使用哪个集合
    
  •  7.添加和删除效率低的,查询和修改是效率高的(数据结构)
    
  •  8.有索引,长度是固定的
    
  •  9.构造一个初始容量为 10 的空列表。
    

/
/
*

  • Deque接口的父类是Queue接口,Queue接口的父类是Collection接口
  • Deque特点:
  • 数据结构是基于双端队列的集合
  • 方便操作队头和队尾的方法
  • 一个线性 collection,支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”。
  • 提供插入、移除和检查元素的方法。每种方法都存在两种形式:一种形式在操作失败时抛出异常,另一种形式返回一个特殊值(null 或 false,具体取决于操作)。
  • 第一个元素(头部) 最后一个元素(尾部)
  • 抛出异常 特殊值 抛出异常 特殊值
  • 插入 addFirst(e) offerFirst(e) addLast(e) offerLast(e)
  • 移除 removeFirst() pollFirst() removeLast() pollLast()
  • 检查 getFirst() peekFirst() getLast() peekLast()
  • Queue 方法 等效 Deque 方法
  • add(e) addLast(e)
  • offer(e) offerLast(e)
  • remove() removeFirst()
  • poll() pollFirst()
  • element() getFirst()
  • peek() peekFirst()
  • 堆栈方法 等效 Deque 方法
  • push(e) addFirst(e)
  • pop() removeFirst()
  • peek() peekFirst()

/
/
*

  • LinkedList 强大之处
  • 特点:
  •  数据结构是链表
    
  •  允许存储null
    
  •  线程不安全的
    
  •  允许重复
    
  •  存储有序
    
  •  查询和修改是效率低的,查询和修改效率高的推荐使用ArrayList(开发中常用的)
    
  •  添加和删除是效率高的,添加和删除效率高的推荐使用LinkedList(开发中常用的)
    
  •  既有List的特点(当List用)
    
  •  又有Stack栈结构的特点(Stack)
    
  •  又有队列结构的特点(Queue)
    
  •  又有双端队列结构的特点(Deque)
    

/
/
*

  • Queue
  • 特点:队列结构
  • 除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。
  • 抛出异常 返回特殊值
  • 插入 add(e) offer(e)
  • 移除 remove() poll()
  • 检查 element() peek()

/
/
*

  • Stack
  • Vector父类,Stack是Vector实现类,同时拥有List,Collection上面的父类所有方法的
  • 特点:先进后出,数据结构是栈结构,
  • Stack 类表示后进先出(LIFO)的对象堆栈。它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈。它提供了通常的 push 和 pop 操作,以及取堆栈顶点的 peek 方法、测试堆栈是否为空的 empty 方法、在堆栈中查找项并确定到堆栈顶距离的 search 方法。
  • E push(E item) 添加到栈底的方法
  • boolean empty() 判断是否为空,为空返回true,否则false
  • E peek() 从栈顶获取第一个元素
  • E pop() 从栈顶移除第一个元素
  • int search(Object o) 查询某个元素 在哪个位置,以1为基数

/
/
*

  • Vector是List的子类
  • 其实是旧版的ArrayList
  • ArrayList是Vector的升级版
  • 特点:就是和ArrayList一样,也是基于数组
  • 方法使用父类的,还有自己的遍历方法和获取元素的方法
  • void addElement(E obj) 添加某个元素
  • E elementAt(int index) 相当于get(index)
  • Enumeration elements() 相当于iterator()旧版迭代器
  •      boolean hasMoreElements(); 判断是否有下一个可取的元素
    
  •          E nextElement(); 取出下一个元素
    

*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值