Java集合框架---重构设计
面向接口编程:
接口类型 变量 =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集合框架---重构设计的更多相关文章
- Java集合框架入门介绍(一)
Java工具包(java.util)提供了强大的数据结构,主要有以下几种接口或类 枚举Enumeration 接口 从数据集合中取回一系列连续值的方法 位集合 BitSet 可以单独清楚或设置的位和标 ...
- Java 集合框架(常用数据结构)
早在Java 2中之前,Java就提供了特设类.比如:向量(Vector).栈(Stack).字典(Dictionary).哈希表(Hashtable)这些类(数据结构)用来存储和操作对象组.虽然这些 ...
- Java集合框架(常用类) JCF
Java集合框架(常用类) JCF 为了实现某一目的或功能而预先设计好一系列封装好的具有继承关系或实现关系类的接口: 集合的由来: 特点:元素类型可以不同,集合长度可变,空间不固定: 管理集合类和接口 ...
- Java集合框架面试题
www.cnblogs.com/zhxxcq/archive/2012/03/11/2389611.html 这里的两个图很形象,由于放进图片链接,图片显示不了,所以只能给出该链接. Java集合框架 ...
- 《深入理解Java集合框架》系列文章
Introduction 关于C++标准模板库(Standard Template Library, STL)的书籍和资料有很多,关于Java集合框架(Java Collections Framewo ...
- java集合框架之java HashMap代码解析
java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...
- Java最重要的21个技术点和知识点之JAVA集合框架、异常类、IO
(三)Java最重要的21个技术点和知识点之JAVA集合框架.异常类.IO 写这篇文章的目的是想总结一下自己这么多年JAVA培训的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享 ...
- Java集合框架Collection
转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接 ...
- Lambda表达式和Java集合框架
本文github地址 前言 我们先从最熟悉的Java集合框架(Java Collections Framework, JCF)开始说起. 为引入Lambda表达式,Java8新增了java.util. ...
随机推荐
- Mysql ERROR 1032 (HY000): Can't find record in TABLE
最近用Mysql出现一个很奇怪的问题. 用SELECT * FROM `v_vod` ORDER BY vod_addtime desc LIMIT 0,18查询得到1个错误 ERROR 1032 ( ...
- ubuntu14.04安装python3.7.1
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz python3.7.1 提示 ModuleNotFoundError: No modu ...
- PHP函数htmlspecialchars_decode
htmlspecialchars_decode() 函数把一些预定义的 HTML 实体转换为字符. <?php $str = "This is some <b>bold&l ...
- [新手教程]windows 2003 php环境搭建详细教程(转)
对于windows服务器的php环境配置一直是是新人朋友的难题,也难倒了很多高手.这里分享一个新手教程,给那些建站新人使用.本教程来自朋友吴文辉的博客,欢迎大家有时间可以访问他的博客:吴文辉博客htt ...
- sublime3环境配置
首先安装package control 按ctrl+`调出控制台,输入以下代码 import urllib.request,os; pf = 'Package Control.sublime-pack ...
- selenium - 驱动 chromedriver 初始化问题总结
ChromeDriver切换浏览器语言 ChromeOptions options = new ChromeOptions(); options.addArguments("--lang=& ...
- Python——List
一.集成开发环境 集成开发环境(IDE,Integrated development Enviroment)是用于提供程序开发环境的应用程序,一般包括代码编辑器.编译器.调试器和图形用户界面等工具.集 ...
- pandas分组和聚合
Pandas分组与聚合 分组 (groupby) 对数据集进行分组,然后对每组进行统计分析 SQL能够对数据进行过滤,分组聚合 pandas能利用groupby进行更加复杂的分组运算 分组运算过程:s ...
- Java多线程-新特征-信号量Semaphore
简介信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施, 它负责协调各个线程, 以保证它们能够正确.合理的使用公共资源. 概念Semaphore分为单值和多值两种,前者只能 ...
- 【FZU2280】Magic
题意 给出n个字符串,每个字符串有一个权值wi 有q个操作,操作有两种 1 x y 将字符串x的权值变为y 2 x 查询操作,输出以字符串x为后缀,且权值小于等于wx的字符串个数.其中n<=10 ...