Java集合常见面试题
Posted baoblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java集合常见面试题相关的知识,希望对你有一定的参考价值。
1、常见的集合
Map接口和Collection接口是所有集合的父接口
1.Conllection接口的子接口包括List接口和Set接口
2.Map接口的实现类主要有:HashMap,TreeMap,HashTable等
3.Set接口的实现类主要有:HashSet,TreeSet,LinkedHashSet等
4.List接口的实现类主要有:ArrayList,LinkedList,Vector等
2、List、Set、Map的区别
1.List里面存放的元素是有序的,可以包含重复元素
2.Set里面存放的元素是无序的,不可以包含重复元素
3.Map中存储是键值对,键不能重复,值可以重复,根据键得到值
3、HashMap和HashTable的区别
1.HashMap没有考虑同步,是线程不安全的,HashTable使用了synchronized关键字,是线程安全的
2.HashMap允许键值对都为null,HashTable不允许键值对为null
4、HashSet和TreeSet的区别
1.hashSet是由Hash表来实现的,元素排列是无序的
2.TreeSet是由一个树形结构来实现的,元素是有序的
5、HashMap的扩容操作是怎么实现的
1.HashMap通过resize()方法进行扩容或初始化
6、ArrayList和Vector的区别
1.都继承了List接口,集合中的数据顺序都是有序的,允许数据重复
2.区别主要区分两个方面
同步性:Vector是线程安全的,ArrayList是线程不安全的
数据增长:Vector在数据满的时候,增长为原来的两倍,ArrayList在数据到达容量的一半时,增长为原空间的1.5倍
7、ArrayList和LinkedList的区别
1.ArrayList和LinkedList都实现了List接口
2.ArrayList是基于索引的接口,他的底层是数组,LinkedList是链表结构来存储数据
3.LinkedList在插入或者删除时的效率更高,ArrayList在查询时效率更高
4.LinkedList要比ArrayList需要更多的内存
8、数组(Array)和列表(ArrayList)的区别
1.Array可以包含基本数据类型和对象,ArrayList只能包含对象
2.Array的长度是固定的,ArrayList的长度是可以动态变化的
3.ArrayList提供了更多的方法和特性,比如addALL(),removeALL()
以上是关于Java集合常见面试题的主要内容,如果未能解决你的问题,请参考以下文章