提前声明一下,这篇博客只是本人将大脑中对集合的一些理解写了下来,期间并没有去翻阅任何资料,如有不对的地方,还请指正与谅解。
从大的方面说,集合分为两块:
1、List与Set为一块
List又分为以下两种:
ArrayList:查询快,增删慢。数据库的查询结果的接收一般都是用的ArrayList。
LinkedList:底层使用的是链表结构,增删快,查询慢。一般应用于session、cookie版的购物车。
Set则分为以下三种:
HashSet:速度快,值不可重复、无序,元素可以为空。后台权限菜单的数据可以用HashSet进行存储。
TreeSet:值不可重复、无序,会自动进行排序
LinkedHashSet:值不可重复、无序,比较普通,插入时是怎样就怎样
2、Map为一块
HashMap:速度快
TreeMap:根据键进行排序
LinkedHashMap:比较普通,插入时是怎样就怎样
以上还涉及到的一些面试问题:
- Array与ArrayList的区别?
- ArrayList与LinkedList有什么区别?
- Collection的remove()方法与iterator的remove()方法有什么区别?
1、从结构上看,Array比ArrayList少4个字母
从使用上看,Array初始必须要指定长度与类型,而ArrayList则可以无需指定这两项
2、这个就不多写了,上面有。
3、前者的remove方法需要填入参数,后者的remove方法无参数;
使用前者对集合进行删除操作时,可能会报错,而使用后者则不会报错,但是需要配合next()方法进行使用