集合——list简单总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合——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:线程不安全,效率高

以上是关于集合——list简单总结的主要内容,如果未能解决你的问题,请参考以下文章

ObservableCollection和List的区别总结

ObservableCollection和List的区别总结

java--集合框架总结1--set总结

leetcode二叉树简单题技巧总结

leetcode二叉树简单题技巧总结

java集合基础篇 简单总结