美文网首页
Java主要数据结构总结

Java主要数据结构总结

作者: 北雁南飞_8854 | 来源:发表于2021-05-14 22:12 被阅读0次
    Collections

    数组线性表类ArrayList 和链表类LinkedList

    ArrayList用数组存储元素,这个数组是动态创建的。如果元素个数超过了数组的容量,就创建一个更大的数组,并将当前数组中所有的元素都复制到新数组中。

    Queue接口

    1. 插入元素到队尾:
      boolean add(E e) —— 插入元素到队尾,如果空间不足,则抛出IllegalStateException异常;
      boolean offer(E e)——插入元素到队尾,失败则不抛异常。
    2. 删除队首元素:
      E remove()——移除队首元素,如果队列为空则抛出NoSuchElementException异常;
      E poll()——移除队首元素,如果队列为空则返回null。

    LinkedHashMap

    3 获取队首元素但不删除:
    E element()——获取队首元素但不删除,如果队列为 空则抛出NoSuchElementException异常。

    Dequeue接口

    该接口继承自Queue,并在此基础上扩展了如下方法:

    1. 插入元素到队首
      void addFirst(E e);
      boolean offerFirst(E e);
    2. 插入元素到队尾:
      void addLast(E e)——等同于add();
      boolean offerLast(E e)——等同于offer()。
    3. 删除队首元素
      removeFirst()/E remove()
      pollFirst()/ poll()
    4. 删除队尾元素
      E removeLast();
      E pollLast();
    5. 获取队首元素,但不删除
      E getFirst()——等同于element()
      E peekFirst()——等同于peek()
    6. 获取队尾元素,但不删除
      E getLast();
      E peekLast();

    以下是作为Stack的接口

    1. void push(E e);
      插入元素到队首,等同于addFirst()。
    2. E pop();
      移除并返回队首元素,等同于removeFirst()。
      使用LinkedHashMap实现LRU的前提是将accessOrder设置为true,以便开启按访问顺序排序模式。
      调用put或者get方法时,都会把最近使用的Entry放入到双向列表的末尾。多次操作后,我们便把最近使用的Entry放入到双向列表的后面,多次操作后,双向列表前面的Entry便是最近没有使用过的。这样当节点数满时,删除最前面的Entry即可。

    相关文章

      网友评论

          本文标题:Java主要数据结构总结

          本文链接:https://www.haomeiwen.com/subject/qskcjltx.html