全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java容器类分析之List ArrayList VectorList是接口,声明了各个方法,不多说。且看ArrayList类。ArrayList类的成员变量有Object elementData,int size;其中elementData数组用来存储加入到ArrayList的对象,size为列表中实际的对象数目。ArrayList类不是线程安全的。Vector与ArrayList的实现基本相同,只是Vector类是线程安全的,其方法都带有synchronized关键字,如果不考虑线程同步的话,ArrayList性能要好一些。当前它们内部实现原理都是用到对象数组来实现,如果元素数目确定,直接用数组效率最高。简单的用法:(后面是数据打印结果)1. publicclassListDemo 2. 3. /* 4. *paramargs 5. */6. publicstaticvoidmain(Stringargs) 7. Listlist=newArrayList(); 8. StringstrArr=newString3; 9. booleanret=list.add(haha); 10. list.add(newString(aa); 11. list.add(null); 12. System.out.println(list.size();/3 13. System.out.println(ret);/true 14. System.out.println(list);/haha,aa,null 15. System.out.println(strArr);/Ljava.lang.String;1fee6fc 16. System.out.println(strArr.getClass().getName();/Ljava.lang.String; 17. System.out.println(list.indexOf(aa);/1 18. System.out.println(list.indexOf(null);/2 19. Stringstr=list.set(1,ee); 20. System.out.println(str);/aa 21. System.out.println(list);/haha,ee,null 22. Stringremove=list.remove(0); 23. System.out.println(remove);/haha 24. System.out.println(list);/ee,null 25. booleanresult=list.remove(ff); 26. System.out.println(result);/false 27. result=list.remove(ee); 28. System.out.println(result);/true 29. System.out.println(list);/null 30. 31. 32. 1. publicArrayList() 2. this(10); 3. 4. publicArrayList(intinitialCapacity) 5. super(); 6. if(initialCapacity0) 27. System.arraycopy(elementData,index+1,elementData,index, 28. numMoved); 29. elementData-size=null;/index后面数据依次往前移动,将最后一个位置赋值为0,让gc来回收空间。 30. returnoldValue; 31. 32. 33. publicvoidensureCapacity(intminCapacity) 34. modCount+;/这个变量不用管。 35. intoldCapacity=elementData.length;/初始时设定的数组长度 36. if(minCapacityoldCapacity)/如果数组对象数目初始数组长度,则需要扩容。 37. ObjectoldData=elementData; 38. intnewCapacity=(oldCapacity*3)/2+1;/新的容量大小 39. if(newCapacityminCapacity) 40. newCapacity=minCapacity; 41. /*该方法会创建一个新的对象数组,然后调用System.arraycopy(original,0,copy,0, 42. Math.min(original.length,newLength);方法将源数组数据拷贝到新数组中。引用更新,指向新的对象数组。*/43. elementData=Arrays.copyOf(elementData,newCapacity); 44. 45. 46. 47. /*将对象数组削减到当前元素数目大小,减少存储空间*/ 48. publicvoidtrimToSize() 49. modCount+; 50. intoldCapacity=elementData.length; 51. if(sizeoldCapacity) 52. elementData=Arrays.copyOf(elementData,size); 53. 54. 55. 56. /*查找对象首次出现的位置,若没有找到,返回-1。由 57. 代码可知,可以在list中加入null对象,并查找到。*/58. publicintindexOf(Objecto) 59. if(o=null) 60. for(inti=0;isize;i+) 61. if(elementDatai=null) 62. returni; 63. else 64. for(inti=0;i=size) 88. thrownewIndexOutOfBoundsExceptio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年肇庆辅警协警招聘考试真题附答案详解(黄金题型)
- 2025年连江县辅警招聘考试题库完整参考答案详解
- 2025年海口辅警协警招聘考试真题含答案详解(考试直接用)
- 2025年深圳辅警招聘考试真题附答案详解
- 2025年百色辅警招聘考试题库及答案详解(必刷)
- 2025年阳泉辅警协警招聘考试真题及1套完整答案详解
- 2025年黔西南州辅警协警招聘考试真题附答案详解(培优b卷)
- 2025年那曲辅警招聘考试题库及一套完整答案详解
- 2025年长沙辅警招聘考试真题及答案详解(基础+提升)
- 2025维修服务合同范本
- 四川省成都市石室天府中学2024-2025学年八年级上学期11月期中英语试题(含答案)
- 医院安全生产及消防安全工作总结
- 2025至2030中国生物试剂行业项目调研及市场前景预测评估报告
- 雨课堂在线学堂《智慧中国英语说期末复习题》考核测试答案
- 2024-2025学年江苏省苏州市多校五年级(上)期中语文试卷
- 2025年幼师考试试题及答案真题
- 企业标准化工作流程建立手册
- 【2025年】大学生安全知识竞赛试题库及答案
- 2025年文职考试教材药学真题及答案
- 程式与意蕴-中国传统绘画(人物画)课件-2025-2026学年高中美术人美版(2019)美术鉴赏
- 【高一上】河北省NT20联盟2025-2026学年高一10月联考语文试题含答案
评论
0/150
提交评论