整理一下面试经常被问到的关于集合的问题
集合类的框架图
1.集合分两大类,Map和Collection。而Collection又有子接口List(数据存储顺序和插入顺序是一样的)、Set(里面的元素具有唯一性)
2.Collection中分为:
2.1 :List主要有:
- List继承了Collection,是有序的列表。
- 实现类有ArrayList、LinkedList、Vector、Stack等
- ArrayList是基于数组实现的,是一个数组队列。可以动态的增加容量!
- LinkedList是基于链表实现的,是一个双向循环列表。可以被当做堆栈使用!
- Vector是基于数组实现的,是一个矢量队列,是线程安全的!
- Stack是基于数组实现的,是栈,它继承与Vector,特性是FILO(先进后出)!
2.2: Set主要有:
1.用于存储无序(存入和取出的顺序不一定相同)元素,值不能重复。
2.里面主要有HashSet和TreeSet
3.Map主要有HashMap和Hashtable
3.1:HashMap中有LinkedHashMap
4.具体的面试题如下:
1…Collections和Collection有什么区别
2…List和set的区别?
3…ArrayList和LinkedList的区别?
4…Array和ArrayList有何区别?
5…ArrayList和LinkedList,Vector的区别?
6…HashSet和TreeSet有什么区别?
7…HashMap和Hashtable有什么区别?
8…HashMap与LinkedHashMap,和TreeMap的区别?
9…ArrayList集合加入1万条数据,应该怎么提高效率?
10…如何遍历ArrayList—-LinkedList—HashMap—HashSet?
11…如何对ArrayList—-LinkedList—HashMap—HashSet排序?
版权声明:本文为LesLie-yimei原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。