什么是LinkedList?

链表

在了解LinkedList之前,我们需要了解一下什么是链表:
在这里插入图片描述
假设我们有这样一条"路径",那我们就称为它就是一条链表,直接上代码:

public class Node {
	public Node next;
	public Object element;
}

这就是一个最简单的链表,将图片中的一个圆圈看成一个对象,这个对象中有一个成员属性next和一个存值的element。

双向链表

在链表的基础上我们再加一个成员属性prev用来指向上一个结点对象,就形成了双向链表。

public Node prev;

LinkedList和ArrayList却别

这两家伙明明是兄弟,却像对冤家,同样的继承了List接口,个性却完全不同。
书本上我们看到:
ArrayList是一个不定长的数组。查找和随机访问效率高。有序,唯一,可为null
LinkedList是一个双向链表。修改删除效率高。有序,不唯一,可为null
但我认为,在删除这方面,谁快还不好说。

安全性:

LinkedList是线程非安全的
在这里插入图片描述
打开源码第一行就看的出来,有一个带有状态的size属性,并且用到这个size的方法没有synchronized锁。它就是非线程安全的。

添加元素

		LinkedList linkedList = new LinkedList();
		linkedList.add("张三");
		linkedList.add("李四");
		linkedList.add("王五");

遍历元素

		for (int i = 0; i < linkedList.size(); i++) {
			System.out.println(linkedList.get(i));
		}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值