集合-List - new LinkedList 双向链表

LikendList双向链表:

  • 链表的优点:
  • 因为i链表上的元素在空间存储上内存地址不连续, 所以随机增删元素的时候不会有大量元素位移,因此随机增删效率较高。
  • 在开发中,如果遇到随机增删集合中元素的业务比较多时,建议 使用LinkedList。
  • 链表的缺点:
  • 不能通过数学表达式计算被查找元素的内存地址,每一次查找都是从头节点开始遍历,直到找到为止。
  • 所以LinkedList集合检索/查找的效率较低。

new ArrayList 和new LinkedList 那个使用较多?

  • ArrayList:把检索发挥到极致。(末尾添加元素效率还是很高的。)
  • LinkedList:把随机增删发挥到极致。
  • 加元素都是往末尾添加,所以ArrayList用的比LinkedList多。

new LinkedList 双向链表

  • 底层是数组,LinkedList底层元素有下标。
  • 没有初始化容量,最初这个链表中没有任何元素。first和last引用都是null。
  • LinkedList集合照样有下标,但是检索/查找某个元素的时候效率比较低,因为只能从头节点开始一个一个遍历。
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class LinkedListTest01 {
    public static void main(String[] args) {
//List list2 = new ArrayList(); // 这样写表示底层你用了数组。
// 创建一个结合,在里面添加元素 List list = new LinkedList();// 这样写表示底层你用了双向链表。 list.add("a"); list.add("b"); list.add("c"); //遍历集合 for(int i = 0; i <list.size(); i++){ Object obj = list.get(i); System.out.println(obj); } } }

单向链表:

双向链表:

 

posted @ 2022-04-25 23:30  280887072  阅读(234)  评论(0编辑  收藏  举报