范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

java集合ArrayList源码面试题

  ArrayList优点:随机读性能很高,因为底层是基于数组实现,可以通过get(i)寻址快速读取 获取元素的个数性能很高 arrayLis天生按元素插入顺序排序 ArrayList缺点:在扩容时需要从旧数组把元素拷贝到新数组,性能很差 在随机插入时会导致插入点之后的元素在数组中移动,性能也很差 ArrayList使用场景及使用注意事项:在new ArrayList时最好根据业务场景进行容量的初始化,避免在之后的Add操作时触发数组的扩容,进而提高使用性能 如果有频繁的add(i,e)的操作则不建议使用 ArrayList最好使用在一次性add,之后都是读的场景 ArrayList的元素天生可以重复,所以需要去重的场景不适合 ArrayList主要方法解析:ArrayList构造器:无参构造器:ArrayList();
  构造一个空的数组 ArrayList(int initialCapacity)
  按照给定容量大小初始化一个数组 ArrayList(Collection<? extends E> c)
  根据给定集合进行初始化数组
  使用建议:最好不用使用无参构造器,应该根据业务场景给定容量大小,这样可以避免在后续的add环节频繁的扩容以及新旧数组间的元素拷贝 add(E e)方法:在数组的size+1位置放入元素检查是否需要数组扩容 计算需要的最小容量大小:calculateCapacity方法 如果当前数组是默认的空数组则使用默认容量也就是10,否则就是当前元素size+1 如果计算出来的需要的容量大小大于当前数组大小则需要扩容 扩容:grow(miniCapacity) 新数组长度的计算 数组长度默认是旧数组长度的1.5倍(int newCapacity = oldCapacity + (oldCapacity >> 1); 如果旧数组长度的1.5倍小于miniCapacity,则新数组长度取miniCapacity 如果miniCapacity大于MAX_ARRAY_SIZE长度,则取Integer的最大长度 把旧数组的元素拷贝到新数组中(Arrays.copyOf(elementData, newCapacity)),底层使用的System.ArrayCopy方法 在数组的size+1位置放入e元素elementData[size++] = e;
  使用建议:这个方法在ArrayList中是最常用的,在整个过程中可以看出如果使用无参构造器第一次add就会进行数组扩容,初始化容量大小是10,每次扩容以旧容量的1.5倍进行。这个方法的性能瓶颈也就在这个过程中了 add(int index,E e)方法:在数组的index位置放入元素检查index是否超过数组大小,超过则报错 检查是否需要扩容以及需要的话再进行扩容 把index位置及之后的元素都往后移一个位置 在数组index位置上放入e元素 size++
  使用建议:这个方法性能瓶颈在第二步和第三步(扩容和数组元素的移动),所以这个方法不建议使用,而且在真正的生产中也是几乎不用的 addAll(Collection c)方法:把集合c中的元素都加上数组中检查是否需要扩容以及需要的话再进行扩容 通过System.arrayCopy把c中的元素都拷贝到数组中
  set(int index,E e)方法:在数组的index位置放入元素检查index是否超过数组大小,超过则报错 拿出index位置的元素,在之后返回 在数组index位置放入元素
  使用建议:这个方法非常不常用, 也没有优缺点 get(int index)方法:获取数组的index位置元素
  简单不说了 remove(int index)方法:删除数组的index位置元素
  通过数组元素的移动覆盖index位置的元素,然后置空s数组ize-1位置达到删除的目的。
  remove(Object o)方法:删除数组中指定元素
  通过遍历数组找到o元素所在的index,再 通过数组元素的移动覆盖index位置的元素,然后置空s数组ize-1位置达到删除的目的。 iterator()方法:迭代ArrayList中的元素
  会new Itr()的一个内部类,通过游标cursor进行遍历,需要注意的是如果在遍历的过程中增加或删除元素会导致报ConcurrentModificationException subList(int fromIndex,int toIndex):生成子List
  会new SubList()的一个内部类,这个内部类具有ArrayList中的所有方法,而且所有方法操作的数组还是之前ArrayList中的数组。
  欢迎关注"java面试工程师"公众号

走廊虽小,但值得布置一番在住宅之中,走廊属于过渡性空间,因面积窄小狭长且无适合的利用方案,成为被遗忘的存在。但在设计师眼中,这犹如丑小鸭一般的走廊其实拥有巨大潜力,只是在羽翼未丰之前,无法展现出它的美,那在家办公必备的几件好物,任意一件都能让效率提高5倍充满设计感的空间之中,每一个区域都有它存在的意义。比如看似鸡肋的飘窗,在经过一番改造之后,可以成为休闲区娱乐区或者办公区,以此扩充户型功能,满足我们日益增长的生活需求。特别是飘窗改特斯拉的致命BUG,埃安LX的L3能解开吗?关注并标星电动星球News每天打卡阅读更深刻理解汽车产业变革前两天,广汽新能源发布了一个视频,展示了埃安LX搭载ADiGO3。0自动驾驶系统之后,脱手情况下的能力。其中的很多场景都特斯拉Q1盈利1600万美元,国产Model3明起起售价降至30万以内出品电动星球News作者毓肥没有人能想到这样的特斯拉还能盈利。从3月19号算起,一个季度里面停工了接近18的车企,能在全球其他所有车企销量都一路狂泻的时代洪流中挣扎而出,用8840英伟达新一代自动驾驶芯片正式发布,暴打特斯拉Autopilot硬件3。0出品电动星球News作者毓肥自从去年4月份,特斯拉发布Autopilot硬件3。0以来,智能汽车的王座就一直被那个男人以车企CEO的身份占据。Mobileye英伟达恩智浦德州仪器等特斯拉要求小鹏汽车交出自动驾驶源代码,小鹏汽车回应称霸凌出品电动星球News作者蟹老板毓肥一年前,我们曾报道过入职小鹏汽车的前特斯拉员工首席计算机视觉科学家曹光植被特斯拉起诉窃取了特斯拉自动驾驶源代码一案。详见小鹏汽车被特斯拉推上风口浪蹉跎两年,宝马欲摆脱诺基亚魔咒?iX3只是开始出品电动星球News作者章鱼哥北京时间6月2日,华晨宝马首款国产的纯电动SUViX3正式登上了工信部第333批道路机动车辆生产企业及产品公告新产品公示名单,同时在这份名单中我们还见特斯拉降薪风波公司的无可厚非,个人的无路可退?出品电动星球News作者蟹老板毓肥特斯拉全员降薪的消息,今天下午震动了整个车圈。在被曝光的公开信中,特斯拉宣布降薪会从即日起到最早第二季度末,涉及所有美国区域的员工。从副总裁以上的恒大汽车副总吕超开撕恒大,背后潜藏了轮毂电机大骗局?出品电动星球News作者蟹老板本人今天早上,恒大汽车动力科技副总吕超离职的消息爆了出来。在被晒出的朋友圈截图来看,言辞很不客气。在随后接受媒体采访时,吕超更直接说房地产造车模式很难长续航37万?特斯拉ModelY年底交付!定一个时跨半年的赌约出品电动星球News作者章鱼弟一场突如其来的而来的黑天鹅事件似乎给2020年的上半年按下了一个慢速播放键,在所有人都在用闪电的方式生活时,在电动星球里马斯克却似乎是唯一一个用正常倍SpringBoot的自动配置原理使用SpringBoot之后,一个整合了SpringMVC的WEB工程开发,变的无比简单,那些繁杂的配置都消失不见了,这是如何做到的?一切魔力的开始,都是从我们的main函数来的,
盘点最畅销的三款国产5G手机,红米K40排第二,最大黑马竟是OPPO国产的5G智能手机一直都非常受欢迎,不仅仅在国内市场销量非常不错,而且在海外地区也是受到了众多用户的广泛关注。根据市场调研机构StraegyAnalytics发布的一份亚太地区5G华为遗憾降级发布4G手机,失去5G光环,华为还能撑多久?前几天,华为终于发布了万众瞩目的P50,让人大跌眼镜的是,P50竟然逆流而上,发布了4G手机,一时间,市场纷争四起。即使很多人怀着爱国的情怀选择支持华为也不得不承认,华为在手机市场市面仅有的三款天玑1200手机,让人没想到居然人气都很高自手机行业进入5G时代以来,联发科携带天玑芯片就再次进入了我们的视线,而随着麒麟芯片的停摆,联发科的机会也越来越多。目前为止联发科的天玑芯片也在更新迭代,而天玑1200作为联发科最我当网课老师月入6万,但一夜之间失业了诱人的高薪急速扩大的规模离开在线教育后他们戳穿了里面的资本泡沫双减政策出台后,互联网K12在线教培大厦一夜倾塌。潮水退去,烂摊子留给了所有人。网课老师是站在最前台的人。在头部企业,市值千亿净利润增五倍,科沃斯双品牌驱动成效显著文杨剑勇消费者对各种智能设备在过去几年保持强劲需求。尤其家庭场景下,在人工智能物联网等新技术驱动下,家庭场景中各传统设备开启智能化升级,动动手指,或者说一声就可以对家庭各种设备进行宝藏歌手周深献唱的两个手机品牌歌曲,你更喜欢那一首呢?宝藏歌手为一加手机献唱的瞳出类拔萃和为IQOO手机献唱的生而为赢,你更喜欢那个?当然,两首唱的都很好听。但要挑选出最喜欢的那一首的话,你选那一首呢?我的选择是瞳出类拔萃了,因为瞳出制造业500强之大山里的东风汽车集团公司名叫东风的有两个狠货,一个伺候美帝一个伺候老百姓,前一位是头条上常常被置顶的东风快递,使命必达,后一位是让汽车驱动梦想的东风汽车。本集先看看东风汽车的品牌产品,再慢慢看他的发展历史封锁华为芯片300天,美国突然允许出售,真的是向华示好?文唏兮有消息表示,美国已经批准了供应商数亿美元的许可证申请,允许其向华为出售用于汽车零部件的芯片。在美国封锁华为芯片300天左右的今天,突然传出的此消息让很多人都兴奋不已,芯片对于马斯克力挺特斯拉中国质量好样的!对刹车失灵自燃依然肯定特斯拉位于上海的超级工厂,已经是这家美国公司在海外最重要的生产基地之一。今日(8月26日),马斯克转发特斯拉中国分享的一段视频,内容介绍了一辆ModelY,是如何从钢结构件的原始状中国业绩最好的科技股十大科技龙头企业朋友们,科技股一直以来都是市场上的主流热点,很多朋友都想知道科技股怎么选?今天呢,牛哥就分享两个财务指标,帮助大家简单判断一家公司是否具备科技属性。第一个就是人均薪资大家都知道,科魅族18系列搞定了强迫症队友?细看它的设计,确实如此强迫症算是一种病吗?在我看来没有影响别人生活的情况下,它都不算顶多算是高要求的一种表现,对生活质量比较有自己的想法而已。当然了,站在不同的立场上,每个人对于强迫症都是不同的理解。而