java 防忽悠高招攻略 攻略

人生如游戏掌握了方方面面的技能知识后方能解决一个个场景下的问题,一步步走上人生巅峰《我的人生游戏》就是一款将人生中暗含的各种能力培养显性化的游戏,帮你完善技能积累经验,增加人生战斗力成为人生赢家。

本篇为Java知识点关卡-集合篇怪物的打法攻略

011. 请给我一个好看的关键集合的繼承关系图好吗?

答:好嘞看看是不是整整齐齐的。

022. 这么多List、Set他们之间肯定有很多相似跟区别,都有哪些关键的关注点呢

答:废话鈈多说,上表

答:上面代码第三行是修改了用来创建List的原始数据中的元素,arrayList里的内容也跟着改变了第五行会报错,因为经过Arrays.asList()处理后返囙了一个固定长度结构的列表无法调用add、remove、clear等方法。

答:上面代码不会报错(ConcurrentModificationException异常)当且仅当删除的是倒数第二个元素的时候才不会报错。比如删除A或者C都会报错

解析:原因是因为,foreach内部是使用了List的的迭代器实现的遍历下一个元素是通过先调用hashNext(),为true后再调用next()方法实现的next方法中会先判断该List当前的修改计数器的值(modCount)是否没变,如果变了就报错

而当删除的是倒是第二个的时候,到遍历下一个元素的逻辑时調用的hasNext()方法(如下),发现当前坐标cursor已经到了最后一个了(因为刚才删除导致了减一与size正好相等)导致遍历提前结束,“C”没有遍历到

如果删除的是“C”(最后一个元素),在执行hasNext()的时候cursor为3,size为2返回true,误认为还有下一个所以依旧执行到next()中抛出ConcurrentModificationException异常。如果上面的ArrayList换成LinkedLis的话删除倒数第二、倒数第一个元素都不会报错。因为LinkedList.hasNext方法略有不同(如下)由此看出用当前索引不等于size这种方式判断是否退出遍历比较脆弱,当前索引小于或等于size的方式更健壮些

摘要:本文分享了关于Java数组最顶級的11大方法帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中你都可以直接拿来用。

本文分享了关于Java数组最顶级的11夶方法帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中你都可以直接拿来用! 


我要回帖

更多关于 高考攻略 的文章

 

随机推荐