码迷,mamicode.com
首页 > 编程语言 > 详细

Java集合常见面试题

时间:2020-06-09 12:52:52      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:试题   初始化   一半   基本数据   操作   remove   hashmap   lin   怎么   

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集合常见面试题

标签:试题   初始化   一半   基本数据   操作   remove   hashmap   lin   怎么   

原文地址:https://www.cnblogs.com/baoblog/p/13071571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!