数据结构和算法(java)数组和链表

1.数组

1.1数组的定义

数组是始终以线性表数据结构,用一组连续的内存空间,来储存相同的数据

1.2数组的特点

高效的随机访问,低效的插入删除

1.3数组的应用

JAVA中的数组容器:ArrayList

List list = new ArrayList();//定义数组

list.add("添加元素");//添加

list.get(0);//获取第一个元素,数组的下标以0开始

 初始化空,默认容量10,扩容机制:创建一个1.5倍容量数组,原数组复制。

 

 

2.链表

2.1链表的定义

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

链表和数组最大的不同就是,数组是连续内存地址,链表可以在任意内存位置。数组需要1.5倍容量的空间,而链表不用。

2.2单链表

特点:相比数组,删除插入更快(不需要数据搬移),但查询没有数组快(非连续)

 

 

2.3循环链表

2.4双向链表

linkedhashmap

2.5双向循环链表

2.6.链表和数组的性能比较

2.7链表的应用

JAVA中基于链表的容器:

List<String> list = new LinkedList<String>();

list.add("第一个元素");
list.get(0);

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值