LinkedList

LinkedList

特点:

  • first
  • last
  • 元素之间形成双向链表,链表结构。
  • 每个元素也有一个索引(位置)。

LinkedList 和 ArrayList 的对比

  • LinkedList 底层采用的是双向链表的数据结构,ArrayList 底层采用的是变长数组的数据结构。
  • 向空容器中插入第一个元素时,LinkedList 比 ArrayList 快。后续元素的追加,LinkedList 比 ArrayList 慢(前提是数组不扩容)。
  • 向容器的指定位置插入元素时,LinkedList 比 ArrayList 快。
  • 查询数据时,如果根据索引获取数据,ArrayList 比 LinkedList 快。但是,如果根据元素查找,它们都是线性查找,没有本质区别。

注意: 当 LinkedList 为空时(没有元素),getFirst 和 getLast 会出现异常。

示例

// 创建对象
LinkedList  list = new LinkedList();

// 插入数据
list.add("jack"); // 默认是从尾部依次插入
list.add("rose");
list.addFirst("abc");
list.add(2, "rose2");
System.out.println(list); // [abc, jack, rose2, rose]

// 获取数据
System.out.println(list.get(0)); // abc
System.out.println(list.getFirst());
System.out.println(list.getLast());

// 遍历,同 ArrayList 类似
// 修改数据
list.set(2, "jack2");
System.out.println(list); // [abc, jack, jack2, rose]
// 删除数据
list.remove(); // 从头部移除一个元素
System.out.println(list); // [jack, jack2, rose]
list.remove(0);
System.out.println(list); // [jack2, rose]
System.out.println(list.size()); // 2
System.out.println(list.element()); // jack2
// 从头部插入元素
list.push("h");
System.out.println(list); // [h, jack2, rose]
// 从头部弹出数据
System.out.println(list.pop()); // h
System.out.println(list); // [jack2, rose]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值