1 / 3
文档名称:

关于ArrayList的5道面试题-Java开发Java经验技巧.doc

格式:doc   大小:71KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

关于ArrayList的5道面试题-Java开发Java经验技巧.doc

上传人:pppccc8 2019/2/6 文件大小:71 KB

下载得到文件列表

关于ArrayList的5道面试题-Java开发Java经验技巧.doc

相关文档

文档介绍

文档介绍::..关于ArrayList的5道面试题-编程开发技术关于ArrayList的5道面试题木文由ImportNew・kobekilleijun翻译自vitalflux。欢迎加入翻译小组。转载请见文末要求。我以面试官的身份参加过很多Java的面试,以下是五个比较冇技巧的问题,我发现有些初级到中级的Java研发人员在这些问题上没有完全弄明口,似懂非懂。所以我写了一篇相关的文章,帮助初级Java研发人员弄清楚这些问题。文章列举了和JavaArrayList相关的5个比较具有迷惑性的问题,我相信如果面试者能够很好的冋答出这些问题,那么在面试的吋候你一定能够得到不错的分数。如果你同意我的看法,或者除了下面的问题,你还冇其他比较好的问题,那么就请联系我吧。1>ArrayList的大小是如何自动增加的?你能分享一下你的代码吗?这是最有技巧性的的一个问题,大多数人都无法回答。事实上,当有人试图在arraylist屮增加一个对象的时候,Java会去检查arraylist,以确保已存在的数组中有足够的容量来存储这个新的对象。如果没有足够容量的话,那么就会新建一个长度更长的数组,□,现有的数组引用指向了新的数组。看如下的代码段(中的JavaArrayListCode)://ArrayListAdd方法:publicbooleanadd(Ee){ensureCapacity(size+1);//IncrementmodCount!!elernentData[size++]=e;returntrue;}//ensureCapacity方法:处理ArrayList的大小publicvoidensureCapacity(intminCapacity){modCount++;intoldCapacity=;if(minCapacity>oldCapacity){ObjectoldData[]二elementData;intnewCapacity二(oldCapacity*3)/2+1;if(newCapacity〈minCapacity)newCapacit)^=minCapacit3^;//minCapacityisusuallyclosetosize,sothisisawin:(elementData,newCapacity);请注意这样一个情况:新建了一个数组;I口数组的对象被复制到了新的数组中,并且现有的数组指向新的数组。2、什么情况下你会使用ArrayList?什么时候你会选择LinkedList?这又是一个大多数面试者都会怵I惑的问题。多数情况下,当你遇到访问元素比插入或者是删除元索更加频繁的时候,你应该使用ArrayListo另外一方面,当你在某个特别的索引中,插入或者是删除元素更加频繁,或者你压根就不需要访问元素的时候,你会选择LinkedListo这里的主要原因是,在ArrayList+访问元素的最糟糕的时间复杂度是”1〃,而在LinkedList中可能就是”n”了。在ArrayList中增加或者删除某个元素,通常会调用Sys