面向接口编程:

接口类型 变量 =new 实现类();

List  list=new ArrayList();

---------------------------------------

List实现类的特点与性能分析

--------------------------------------

三者共同的特点和遵循的规范:

1):允许元素重复;

2):记录元素的先后添加顺序

--------------------------------------

Vector类:

底层才有数组结构算法,方法都是使用Synchronized修饰,线程安全,但是相当于ArrayList性能较低;

ArrayList类:

底层才有数组结构算法,方法没有使用Synchronized修饰,线程不安全,相当于Vector性能较高。

ArrayLis现在基本上已经取代了Vector的江湖地位。

为了保证ArrayList线程安全,List lsit =Collections.SynchronizedList(new Arraylist(...));

LinkedList类:

底层才有双链表结构算法,方法没有使用Synchronized修饰,线程不安全。

数组结构算法和双向链表结构算法的性能问题:

数组结构算法:插入和删除操作速度低,查询和更改较高;

链表结构算法:插入和删除操作速度快,查询和更改较慢;

---------------------------------------------------------------------------

使用的选择:
Vector类打死都不用!即使要用,就用ArrayList类。

如果插入和删除操作频繁,应该使用LinkedList类;

如果查询和更改操作频繁,应该使用ArrayList类;

在开发中。较多使用ArrayList类,根据具体的需求环境来选择;


public static void main(String[] args) {List list=new ArrayList();list.add("b");list.add("c");list.add("d");list.add("e");//方式1:for循环for (int index = 0; index < list.size(); index++) {Object rest = list.get(index);//取出指定索引位置的元素
        System.out.println(rest);}System.out.println("---------------------------------------------------------------------------");//方式2:for-each增强for循环for (Object ele : list) {System.out.println(ele);}System.out.println("---------------------------------------------------------------------------");//方式3:使用while循环操作迭代器IteratorIterator it=list.iterator() ;while(it.hasNext()){System.out.println(it.next());}System.out.println("---------------------------------------------------------------------------");//方式4:使用for循环操作迭代器Iteratorfor (Iterator it2=list.iterator() ;it2.hasNext(); ) {System.out.println(it2.next());}System.out.println(list);
}

转载于:https://www.cnblogs.com/jiangxifanzhouyudu/p/6692656.html

Java集合框架---重构设计相关推荐

  1. Java集合框架-重构设计

    根据Vector类,ArrayList类,LinkedList类所有具有的存储特点以及拥有的方法入手,发现共性就往上抽取. 共同的特点: 1):允许元素重复的. 2):会记录先后添加的顺序. 共同的方 ...

  2. Java集合框架中隐藏的设计套路

    我们的世界不应该只有"胡萝卜" 进入正题之前容我先扯点别的. 最近突然想到了一个驴子和胡萝卜不得不说的故事.说是一个人坐在驴子背上,用一根长杆绑着一根胡萝卜,然后把胡萝卜悬到驴子的 ...

  3. Java集合框架完全解析

    1.集合概述 现实生活中集合:很多事物凑在一起. 数学中的集合:具有共同属性的事物的总体. Java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象.在编程时,常常需要集中存放多 ...

  4. Java集合框架综述,这篇让你吃透!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:平凡希 cnblogs.com/xiaoxi/p/60899 ...

  5. java集合框架史上最详解(list set 以及map)

    title: Java集合框架史上最详解(list set 以及map) tags: 集合框架 list set map 文章目录 一.集合框架总体架构 1.1 集合框架在被设计时需满足的目标 1.2 ...

  6. java集合框架综述

    一.集合框架图 简化图: 说明:对于以上的框架图有如下几点说明 1.所有集合类都位于java.util包下.Java的集合类主要由两个接口派生而出:Collection和Map,Collection和 ...

  7. java集合框架容器 java框架层级 继承图结构 集合框架的抽象类 集合框架主要实现类...

    本文关键词: java集合框架  框架设计理念  容器 继承层级结构 继承图 集合框架中的抽象类  主要的实现类 实现类特性   集合框架分类 集合框架并发包 并发实现类 什么是容器? 由一个或多个确 ...

  8. 容器(一)剖析面试最常见问题之 Java 集合框架

    转载自https://github.com/Snailclimb/JavaGuide/blob/master/docs/java/collection/Java%E9%9B%86%E5%90%88%E ...

  9. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...

    一个多月前,作者和一些小伙伴决定做一系列的 Java 知识点常见重要问题的小册,方便用来夯实基础!小册的标准就一个,那就是:取精华,取重点.每一本小册,我们都会充分关注我们所总结的知识点是否达到这个标 ...

最新文章

  1. JavaScript 对象属性作实参以及实参对象的callee属性
  2. DualLinkList
  3. #淘宝#复制分享宝贝内容,打开淘宝APP,自己主动弹出宝贝提示信息
  4. 【emWin】例程二十二:窗口对象——Framewin
  5. 【Android开发】高级组件-选项卡
  6. (一)人工智能、AI批量抠图、AI视频抠像、图片换背景、视频换背景、实时抠图、实时抠像、虚拟场景直播系统、虚拟旅游、人像去背景、图像去背景、视频背景消除
  7. 自备ACM模板 —— 数学篇
  8. 小白入门之海康威视摄像机的二次开发
  9. LeetCode 分数加减运算
  10. android死锁解决方案,【线程死锁】Android多线程死锁产生的原因以及如何避免
  11. 【问题征集】向 iPod 之父、iPhone 联合设计者、Google Nest 创始人 Tony Fadell 提问啦
  12. 两张图片怎样合成一张左右拼图?
  13. 【天光学术】语言学论文:英语认知语言学和心理语言学的融通互补探析(节选)
  14. 三维旋转(根据转轴和角度)的公式。罗德里格旋转公式
  15. python中*和**之间的区别和联系
  16. Semantic Visual Simultaneous Localization and Mapping A Survey
  17. 多层数据包结构及TCP三次握手
  18. Java 属性集合Properties的六种遍历处理方式
  19. 获取ip地址的DORA(Discover- Offer- Request- Acknowledgement)过程
  20. 不想打扰你,只这样静静地看着就足矣

热门文章

  1. jupyter notebook OSError: [WinError 10049] 在其上下文中,该请求的地址无效。
  2. 软件设计师备考知识点02
  3. Linux操作Oracle(1)——Linux下 Weblogic启动关闭方法
  4. django学习笔记01
  5. 设计模式16_策略模式
  6. 家里安装20M宽带,为什么看视频都不卡,但一玩游戏就卡的要死?
  7. Windows TensorFlow环境搭建
  8. python matplotlib数据可视化教程_Python使用matplotlib实现数据可视化教程
  9. python stdin和stdout_无法使用Python写入和读取stdin / stdout
  10. nlp-tutorial代码注释3-3,双向RNN简介