List特点:元素有放入顺序,元素可重复 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的) 。
Map特点:元素按键值对存储,无放入顺序 (应该知道什么是键值对吧!)List接口有三个实现类:LinkedList,ArrayList,Vector LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身内存地址的同时还存储下一个元素的地址。
链表增删快,查找慢 ArrayList和Vector的区别:ArrayList是非线程安全的,效率高;Vector是基于线程安全的,效率低 Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet SortedSet接口有一个实现类:TreeSet(底层由平衡二叉树实现) Query接口有一个实现类:LinkList Map接口有三个实现类:HashMap,HashTable,LinkeHashMap HashMap非线程安全,高效,支持null;HashTable线程安全,低效,不支持null SortedMap有一个实现类:TreeMap 其实最主要的是,list是用来处理序列的,而set是用来处理集的。Map是知道的,存储的是键值对 set 一般无序不重复.map kv 结构 list 有序。
3.首先list,set的上层接口是Collection接口。list底层存储数据是通过数组储存。 他有实现类ArrayList和LinkedList比较常用。Vector这个类现在基本没用。Vector和ArrayList是数组,插入数据较慢,查询较快。区别在Vector是线程安全的,所以处理速度不如ArrayList。linkedList是链表结构储存,插入数据较快,查询较慢。
4.Set集合最大特点不存重复元素,Set集合有自己的排序方式,所以取出时顺序和存储时不一样。常用实现类HashSetHashSet储存会判断值的Hash值,相同的话则不储存。Map接口是一个键值对集合,键不可以重复,值无所谓。Map集合也是有自己的排序方式常用实现类HashMap.实际Map集合存的就是映射。