数组(Array):
1、数组存储在连续的内存上
2、数组的元素类型必须相同
3、数组可以直接通过下标访问
4、查找与修改元素的速度非常快
5、必须在声明时指定长度
 
 
动态数组(ArrayList):
1、ArrayList的底层其实就是一个数组
2、不必在声明时指定长度,会根据存储的数据动态增加或减少长度
3、插入和删除一个元素时,会移动它之后所有元素的位置,效率低,频繁进行插入删除元素时推荐使用LinkedList
4、ArrayList会把所有元素都当做Object处理,因此可以存储不同类型的元素
5、ArrayList是非类型安全的,而且在插入和删除元素时会进行拆箱和装箱的操作,消耗性能,效率低
 
 
泛型List:
1、List是ArrayList的泛型等效类
2、需要在声明时通过泛型指定类型
3、没有拆箱装箱操作,因此在大多数情况下List要比ArrayList效率高且类型安全
 
 
双向链表(LinkedList):
1、链表在内存中的空间不是连续的,每块空间称作一个节点,每个节点都存有与它之前和之后相连接的节点的地址,因此向链表中添加和删除元素时只需要更改相关节点存储的地址的指向,效率高
2、查找元素时不能通过下标访问,只能从头开始通过地址按顺序查找,效率低
 
 
堆栈(Stack):
先进后出原则,最先插入的元素最后被访问,最后被插入的元素最先被访问
 
 
队列(Queue):
先进先出的原则,最先插入的元素最先被访问,最后插入的元素最后被访问
 
 
字典(Dictionary):
1、创建字典时需要指定key和value的类型
2、字典中的key的值必须唯一,value的值不唯一
3、可以通过key快速查找对应的value,速度快,但是消耗内存

最新文章

  1. CI Weekly #6 | 再谈 Docker / CI / CD 实践经验
  2. MVC5 网站开发之六 管理员 1、登录、验证和注销
  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(8)-MVC与EasyUI DataGrid 分页
  4. [Solved]bcdedit.exe文件权限问题
  5. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
  6. PadLeft 和 PadRight
  7. 编译安装 LLVM
  8. 【Python】可变对象和不可变对象
  9. android 代码混淆及问题大集锦
  10. Android 即时语音聊天工具 开发
  11. 2014.12.01 B/S之windows8.1下安装IIS
  12. laravel5.2/laravel5.3入门指南 Windows 上快速安装并运行 Laravel 5.x
  13. 论文写作office实用技巧
  14. Eclipse去掉对JS文件的Validation
  15. C#多线程中的异常处理
  16. CentOS7离线安装mysql5.7
  17. C# 处理PPT水印(一)——添加水印效果(文字水印、图片水印)
  18. java笔记 -- java字符串
  19. WEB学习笔记5-标准的HTML页面结构
  20. 编辑后保留原URl搜索条件

热门文章

  1. GMT UTC CST ISO 夏令时 时间戳,都是些什么鬼?
  2. 【Docker】runtime create failed: container_linux.go:345: 解决
  3. Linux echo和cat和grep和tr的基础用法
  4. 查看Java的汇编指令
  5. 1.5V升3V芯片和电路图,DC-DC升压IC
  6. (17)-Python3之--文件操作
  7. Vue中组件间通信的方式
  8. no-referrer-when-downgrade
  9. 为什么 Go 模块在下游服务抖动恢复后,CPU 占用无法恢复
  10. Win10家庭版Hyper-V出坑(完美卸载,冲突解决以及Device Guard问题)