list、set、map的区别
list和set都是继承collection接口,map不是
list数据是有放入顺序的,数据可以重复,set是无放入顺序的,顺序是根据该数据的hashcode
决定的,set中的数据不可重复,重复将会覆盖;
list支持for循环和下标遍历,因为是有序的,set只能通过迭代器遍历
set检索数据效率不高,插入删除效率高,并且不会引起数组的位置变化
list可以动态增长,查找效率高,插入删除效率低下,因为会引起数据位置的变化
map适合存储键值对数据
线程安全方面:
lingklist、ArrayList和HashSet是非线程安全的,vectory是线程安全的;
list和set都是继承collection接口,map不是
list数据是有放入顺序的,数据可以重复,set是无放入顺序的,顺序是根据该数据的hashcode
决定的,set中的数据不可重复,重复将会覆盖;
list支持for循环和下标遍历,因为是有序的,set只能通过迭代器遍历
set检索数据效率不高,插入删除效率高,并且不会引起数组的位置变化
list可以动态增长,查找效率高,插入删除效率低下,因为会引起数据位置的变化
map适合存储键值对数据
线程安全方面:
lingklist、ArrayList和HashSet是非线程安全的,vectory是线程安全的;
hashmap是非线程安全的,hashtable是线程安全的;
ArrayList 和 LinkedList 的区别和应用场景
ArrayList
优点,ArrayList实现了基于动态数组的数据结构,因为是连续放置的,所以查询的效率很高
缺点:因为是连续放置的,插入删除的时候需要移动数据,效率低下
LinkedList
有点:LinkedList是基于链表的数据结构,因为数据存放位置不是连续的,删除和插入占优势
缺点:查询的时候需要移动指针,效率低下
适用的场景,当对数据进行查询的时候,需要用ArrayList,要对数据进行多次删除增加的时候
用LinkedList有优势;