最近对这两个问题比较懵逼,关于ListArrayListList<String> list = new ArrayList<String>();

好了,先搞明白List 和 ArrayList吧。

List是一个接口,是Collection接口的一个子接口,是一个有序的集合。

ArrayList是List的一个实现类,可以实现数组大小的可变,可以很方便的进行增加和删减数组内元素的操作。

1 List<NameValuePair> paraList = new ArrayList<>();
2 paraXmlList("cfgXml", dataxmlPath, paraList);
3 paraList.add(new BasicNameValuePair("productid", productid));//(此处对List进行添加了数据)

List list=new ArrayList();这种形式成为向上转型,ArrayList实现了List接口,可以看成是从List继承而来,一个子类的对象可以指向它父类。

比如,狗从动物继承而来,狗是一只动物,所以狗的对象可以当作一只普通的动物来看待。

然后再来说说List<String> list=new ArrayList<String>();为甚麼要声明为List 而不是ArrayList<String>?

List是集合最大的父类,它包含了ArrayList。
如果直接声明为ArrayList<String> list=new ArrayList<String>()这个也没有问题,但是不推荐,应为这样显得不是很灵活,因为List下除了ArrayList还有LinkList等他们都实现了List里面的方法。
而声明成:List<String> list=new ArrayList<String>();这样的形式使得list这个对象可以有多种的存在形式

比如要用链表存数据的话直接用LinkedList,使用ArrayList或者Vector直接通过list = new LinkedList<String>();就可以了,这样让list这个对象活起来了

很多需求只能用一个list,内存有限,或者线程同步,不能有更多的集合对象,使得List总的接口来管理对象。

最新文章

  1. 分金币 bzoj 3293
  2. 解析URL 获取某一个参数值
  3. Python~win32com~Excel
  4. java从零到变身爬虫大神(一)
  5. VC中遍历进程并获取进程信息
  6. 创建TreeView控件
  7. nodejs+express+mongoose无法获取数据库数据问题解决
  8. 【译】索引进阶(十三):SQL SERVER中的索引碎片【下篇】
  9. 记一次504 Gateway Time-out
  10. 建立uboot,内核的SI工程(1)
  11. B. Interesting drink
  12. Codeforces 1038D - Slime - [思维题][DP]
  13. windows环境下搭建Java开发环境(三)——Maven环境配置使用 (转)
  14. [转]JVM系列三:JVM参数设置、分析
  15. BZOJ.2111.[ZJOI2010]排列计数(DP Lucas)
  16. 内存控制函数(1)-mmap() 建立内存映射
  17. 【SQL Server 2012】按倒序存储“分组统计”结果的临时表到新建表
  18. spring in action学习笔记十五:配置DispatcherServlet和ContextLoaderListener的几种方式。
  19. 【云计算】WAF简介、功能特性、部署方式等
  20. Codeforces 158E Phone Talks:dp

热门文章

  1. 【做题】HDU6331 Walking Plan——矩阵&amp;分块
  2. 集合03_Map
  3. Android开发——去掉系统自带标题栏的几种方式
  4. jquery里面获取div区块的宽度与高度
  5. 论文笔记:Learning Dynamic Memory Networks for Object Tracking
  6. KNN——图像分类
  7. 无法获取未定义或 null 引用的属性“contentWindow”
  8. C++ 空字符(&#39;\0&#39;)和空格符(&#39; &#39;)
  9. 每日质量NPM包拖拽文件上传_react-dropzone
  10. tornado关于AsyncHTTPClient的使用笔记