java基础面试题(集合)
2017-11-22 17:14
281 查看
1.java集合类提供的框架基本接口类有哪些?
Collection:代表一组对象,每一个对象都是它的子元素1. list :有序,可包含重复元素,取值顺序是’早进晚出’,也就是最先存的值最后才取出来.
2. set :无序,不可包含重复元素
3. map : key不能重复,取值顺序是’早进早出’,也就是最先存的值,最早被取出
2.为什么集合类没有实现cloning 和Serializable?
因为Cloning 跟 Serializablie 都是跟具体实现相关的,由此,应该让集合的具体实现类来决定被克隆还是被序列化3.Iterator 跟 listlterator的区别是什么?
listInterator实现了Interator,listIterator实现了一下别的功能,比如增加,替换,获取前一个元素的索引,等等Interator是用来遍历set 跟 map的
listIterator是遍历list集合的
4.介绍HashCode跟equals
equals()相等的两个对象,hashcode()一定相等,equals()不相等的两个对象,却并不能证明他们的hashcode()不相等。换句话说,equals()方法不相等的两个对象,hashCode()有可能相等。(我的理解是由于哈希码在生成的时候产生冲突造成的)hashcode()方法是本地方法,返回的是对象的地址值,而object类中的equals()方法比较的也是两个对象的地址值,如果equals()相等,说明两个对象地址值也相等,当然hashcode() 也就相等了;
5.equals 跟 hashcode方法的重要体现在哪?
java中的HashMap使用了equals 跟 hashcode用来确定键值对的索引,当然,取值的时候也会使用,如果没有正确的实现了这俩个方法,那么会出现俩个不同键出现hashcode相等的情况,当然,这俩个方法也用来发现重复元素,所以,这俩个方法的实现跟hashMap的精确性是有很大关系的6.HashMap跟Hashtable的区别?
HashMap跟Hashtable都实现了map的接口,它们有很多相同点,当然也有不同点,不同点如下,HashMap允许键或值出现null的情况,当然,如果键是null,那么值只能用迭代器取出来
Hashtable是不允许键或值出现value的,
Hashtable是同步的,HashMap不是
所以,Hashtable适合多线程环境,而HashMap适合单线程环境,
7.ArrayList 跟 LinkList的区别?
它们都实现了List的接口(共同点)(不同点)
ArrayList的底层是使用数组,LinkList的底层是以(链表结构)元素列表的形式存的值
ArrayList的查询快,因为List使用角标查询,
LinkList的增删改快,LinkList增删改不需要重新计算集合的大小,
8.comparable跟comparator的区别
comparable只提供了一个方法,它可以给俩个对象排序,具体的来说,会返回负数,0,正数, 意思是 第一个参数小于第二个, 等于第二个 , 大于第二个comparator提供了俩个方法,包含了compare的方法,还有一个equals方法,当compare方法返回的跟equals比较的方法一致,才会返回返回true;
9.HashSet 和 TreeSet的区别是什么?
TreeSet的数据是有序的,HashSet的数据是无序的TreeSet的数据不能为null,HashSet的数据可以为null
HashSet放入的对象需要实现HashCode方法,因为HashSet是用哈希码值来判断值是否重复的,但是HashSet可以放俩个相同对象的不同实例
相关文章推荐
- Java中的面试题 [1] --- Java基础、集合、排序、算法、ConcurrentHashMap等
- java基础面试题集合
- Java基础面试题(一)集合,hashmap,hashtable,hashset
- java基础面试题集合
- 面试题-Java基础-集合和数组
- 面试题-Java基础-集合和数组
- 面试题-Java基础-集合和数组
- 最全Android面试题大集合(Android、Java、计算机基础、设计模式)持续更新
- Java基础知识强化之集合框架笔记66:Map集合面试题之HashMap和Hashtable区别(重要)
- Java基础知识强化之集合框架笔记22:List集合的三个子类的特点(面试题)
- Java基础知识强化之集合框架笔记67:Map集合面试题之List,Set,Map等接口是否继承自Map接口
- java基础知识记录--集合 (摘自张孝祥整理java面试题)
- Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)
- 经典Java基础面试题大集合!(转自牛客网)
- Java基础7:集合类常见面试题
- Java基础、Java集合、多线程、JDBC、HTTP、JSP、Servlet、Struts面试题汇总(附答案)
- java基础---集合类
- java面试题-基础方面
- Java基础<十>_集合(下)
- Java常见面试题(基础) 1