集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Java >

java程序员17个Java集合面试问题和答案,找工作必备!

发布者: java程序员     浏览次数:     发布时间:2018-07-30 10:36:34

java程序员-Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。...

  java程序员17个Java集合面试问题和答案,找工作必备!

  Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。

  1.Java集合框架是什么?说出一些集合框架的优点?

  java程序员17个Java集合面试问题和答案

  2.集合框架中的泛型有什么优点?

  java程序员17个Java集合面试问题和答案

  3.Java集合框架的基础接口有哪些?

  java程序员17个Java集合面试问题和答案

  4.为何Collection不从Cloneable和Serializable接口继承?

  java程序员17个Java集合面试问题和答案

  5.为何Map接口不继承Collection接口?

  java程序员17个Java集合面试问题和答案

  java程序员17个Java集合面试问题和答案

  6.Iterator是什么?

  java程序员17个Java集合面试问题和答案

  7.Enumeration和Iterator接口的区别?

  java程序员17个Java集合面试问题和答案

  8.Iterater和ListIterator

  之间有什么区别?

  java程序员17个Java集合面试问题和答案

  9.遍历一个List有哪些不同的方式?

  List strList = new ArrayList<>;//使用for-each循环for(String obj :strList){System.out.println(obj);}//using iteratorIterator it = strList.iterator;while(it.hasNext){String obj = it.next;System.out.println(obj);}

  使用迭代器更加线程安全,因为它可以确保,在当前遍历的集合元素被更改的时候,它会抛出ConcurrentModificationException。

  10.通过迭代器fail-fast属性,你明白了什么?

  java程序员17个Java集合面试问题和答案

  java程序员17个Java集合面试问题和答案

  11.fail-fast与fail-safe有什么区别?

  java程序员17个Java集合面试问题和答案

  12.为何Iterator接口没有具体的实现?

  java程序员17个Java集合面试问题和答案

  13.UnsupportedOperationException是什么?

  java程序员17个Java集合面试问题和答案

  14.在Java中,HashMap是如何工作的?

  java程序员17个Java集合面试问题和答案

  15.hashCode和equals方法有何重要性?

  java程序员17个Java集合面试问题和答案

  java程序员17个Java集合面试问题和答案

  16.我们能否使用任何类作为Map的key?

  我们可以使用任何类作为Map的key,然而在使用它们之前,需要考虑以下几点:

  (1)如果类重写了equals方法,它也应该重写hashCode方法。

  (2)类的所有实例需要遵循与equals和hashCode相关的规则。请参考之前提到的这些规则。

  (3)如果一个类没有使用equals,你不应该在hashCode中使用它。

  (4)用户自定义key类的最佳实践是使之为不可变的,这样,hashCode值可以被缓存起来,拥有更好的性能。不可变的类也可以确保hashCode和equals在未来不会改变,这样就会解决与可变相关的问题了。

  比如,我有一个类MyKey,在HashMap中使用它。

  //传递给MyKey的name参数被用于equals和hashCode中MyKey key = newMyKey('Pankaj'); //assume hashCode=1234myHashMap.put(key, 'Value');//以下的代码会改变key的hashCode和equals值key.setName('Amit'); //assumenewhashCode=7890//下面会返回null,因为HashMap会尝试查找存储同样索引的key,而key已被改变了,匹配失败,返回nullmyHashMap.get(new MyKey('Pankaj'));

  那就是为何String和Integer被作为HashMap的key大量使用。

  17.Map接口提供了哪些不同的集合视图?

  Map接口提供三个集合视图:

  (1)Set keyset:返回map中包含的所有key的一个Set视图。集合是受map支持的,map的变化会在集合中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身的移除操作以外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

  (2)Collection values:返回一个map中包含的所有value的一个Collection视图。这个collection受map支持的,map的变化会在collection中反映出来,反之亦然。当一个迭代器正在遍历一个collection时,若map被修改了(除迭代器自身的移除操作以外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

  (3)Set> entrySet:返回一个map钟包含的所有映射的一个集合视图。这个集合受map支持的,map的变化会在collection中反映出来,反之亦然。当一个迭代器正在遍历一个集合时,若map被修改了(除迭代器自身的移除操作,以及对迭代器返回的entry进行setValue外),迭代器的结果会变为未定义。集合支持通过Iterator的Remove、Set.remove、removeAll、retainAll和clear操作进行元素移除,从map中移除对应的映射。它不支持add和addAll操作。

  好了,今天的17个Java面试题分享完了,如果你马上要参加面试,记得熟记哦,多记一题,面试薪资就可以提高很多哦!

(责任编辑:范老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼段35号明宇金融广场19楼1903室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街紫东段35号明宇广场2306

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市成华区建设路10号万科钻石广场B座5楼

联系电话:15023458194

公交路线:建设路中(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

20016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56