集合——list简单总结
一.介绍list
1.什么是list?
list是一个有序的序列(collection),它是一个接口,继承了collection,因此了除了包含父类的方法以外,还有专属的方法。
list有三个子类,分别是:ArrayList、linkedlist、vector。
2.list与数组有什么区别呢?
从操作角度:
数组查询快,增删慢。
list增删快,查询慢。
从存储类型:
数组只能存储1种类型(基本类型或引用类型),而list可以存储多种类型(基本类型和引用类型)。
二.介绍栈和队列
栈的特点:先进后出,查询快,增删满
举例:弹夹
分析图:
栈操作数据时,通过地址值获取内存数据。
队列特点:先进先出,增删快,查询慢
举例:排队
分析图:
三.数组与链表存储方式
数组的存储
查询33这个元素,直接数组名[索引],即:array[1]就能得到33这个元素
删除33
1.33前的元素,不变
2.33这个元素,不存储
3.33后的把以前的位置-1,存到新数组中。麻烦
链表:由一个链子将多个节点连起组成的数据。
节点包括:数据和地址组成(指针域和数据域)
内存图:
四.List三个子类的区别和应用场景
Vector:底层是数组,查询快,增删慢
Arraylist:底层是数组,查询块,增删慢
LinkedList:底层是链表,查询慢,增删快
效率:
Vector:线程同步(安全),效率低
ArrayList:线程不同步(不安全),效率高
它用来代替Vector的。
LinkedList:线程不安全,效率高
一点水经过小溪,经过河流,经过长江,成就了大海。