面向接口编程:

接口类型 变量 =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循环操作迭代器Iterator
Iterator it=list.iterator() ;
while(it.hasNext()){
System.out.println(it.next());
}
System.out.println("---------------------------------------------------------------------------");
//方式4:使用for循环操作迭代器Iterator
for (Iterator it2=list.iterator() ;it2.hasNext(); ) {
System.out.println(it2.next());
}
System.out.println(list);
}


Java集合框架---重构设计的更多相关文章

  1. Java集合框架入门介绍(一)

    Java工具包(java.util)提供了强大的数据结构,主要有以下几种接口或类 枚举Enumeration 接口 从数据集合中取回一系列连续值的方法 位集合 BitSet 可以单独清楚或设置的位和标 ...

  2. Java 集合框架(常用数据结构)

    早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些 ...

  3. Java集合框架(常用类) JCF

    Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...

  4. Java集合框架面试题

    www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...

  5. 《深入理解Java集合框架》系列文章

    Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framewo ...

  6. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  7. Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO

    (三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO  写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...

  8. Java集合框架Collection

    转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...

  9. Lambda表达式和Java集合框架

    本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...

随机推荐

  1. STM32GPIO管脚设置

    (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入(3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GP ...

  2. 程序4-2 access函数实例

    //http://blog.chinaunix.net/uid-24549279-id-71355.html /* ========================================== ...

  3. Ajax异步调用http接口后刷新页面

    使用Ajax的目的就是提高页面响应速度,无需同步调用,无需整个页面刷新.这里直接在html中使用js来实现: 先获取XMLHttpRequest对象 var xmlHttp; //创建一个xmlHtt ...

  4. 关于yii2的中文乱码问题

    在数据库配置中这么配就可以了 <?php return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0. ...

  5. 如何设计并使用FireMonkeyStyle

    如何设计并使用FireMonkeyStyle FireMonkey使用Style来控制控件的显示方式. 每个控件都有一个StyleLookup属性,FireMonkey就是通过控件的这个属性来在当前窗 ...

  6. DELPHI中使用UNIDAC连接ORACLE数据库

    DELPHI中使用UNIDAC连接ORACLE数据库   最近在DELPHI中使用到UNIDAC连接到oracle数据库,这样可以不要安装oracle客户端,比较方便使用:所以简单学习了一下,主要是用 ...

  7. java多线程练习实例

    总结: 循环的使用率蛮高,Thraed.sleep(),try-catch语句 package com.aa; public class West { public static void main( ...

  8. tomcat7.0在centos7下中文乱码问题解决汇总

    1. 系统级的中文设置 Centos7跟之前的6和5安装的中文字符命令都不一样 [root@iZ25bdzgev8Z ~]# locale #查看当前系统的语言环境 [root@iZ25bdzgev8 ...

  9. JavaScript笔记——DOM的操作

    节点及其类型 在JavaScript中,节点分为三种: 元素节点:HTML标签元素. 属性节点: 元素的属性, 可以直接通过属性的方式来操作. 文本节点: 是元素节点的子节点, 其内容为文本. 在什么 ...

  10. [机器学习]numpy broadcast shape 机制

    最近在做机器学习的时候,对未知对webshell检测,发现代码提示:ValueError: operands could not be broadcast together with shapes ( ...