【Java集合系列】目录
2017-07-29 13:49:40
一、Collection的全局继承关系

二、系列文章
备注:
1、ArrayList本质上就是一个数组,所有对外提供的方法都是对数组操作的封装;
2、比如add操作,先扩容,然后插入到数组中;set操作,本质上就是替换操作;删除操作,就是将待删除元素之后所有的元素统统前移一位;indexOf操作,就是遍历数组,找到元素所在位置的下标;
3、此类中依赖元素对象的equals方法,不依赖hashCode方法;
4、此类中扩容、删除等操作,需要操作数组,严重依赖System.arrayCopy()方法;
备注:
1、LinkedList采用双向链表存储、处理元素;
2、定义2个指针:first和last,支持双向操作;
3、LinkedList还提供了很多特有的方法,比如支持队列式访问的方法;
4、其他同ArrayList;
5、LinkedList和ArrayList如何选择?
普通意义上理解,数组按照下标访问元素,速度更快,但是如果是遍历或者使用indexOf,那么ArrayList没什么优势;至于插入和删除,由于ArrayList涉及到扩容,如果ArrayList触发扩容,代价较高,否则,如果插入和删除都在末尾,那么没什么区别,如果是在列表中间,那么LinkedList优势巨大;至于修改元素,ArrayList代价较小,LinkedList需要先遍历得到index位置的元素,才能替换。
结论:
如果有大量的访问、替换操作,且是通过下标来使用的,那么选择Arraylist,这样最能发挥ArrayList的优势。其他比如遍历访问,两者差不多,除此之外的其他使用场景,优先推荐使用LinkedList。
Vector和ArrayList的异同:
1、扩容策略不同;
2、线程安全的;
3、提供了一些独特的如removeElement()之类的方法;
4、其他方法的实现与ArrayList几乎是一致的,毕竟都是对数组的操作;
5、忽略这个类即可;
【Java集合系列四】HashSet和LinkedHashSet解析
【Java集合系列】目录的更多相关文章
- Java 集合系列目录(Category)
		
下面是最近总结的Java集合(JDK1.6.0_45)相关文章的目录. 01. Java 集合系列01之 总体框架 02. Java 集合系列02之 Collection架构 03. Java 集合系 ...
 - 深入java集合系列文章
		
搞懂java的相关集合实现原理,对技术上有很大的提高,网上有一系列文章对java中的集合做了深入的分析, 先转载记录下 深入Java集合学习系列 Java 集合系列目录(Category) HashM ...
 - Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
		
概要 前面,我们已经学习了ArrayList.接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解.内容包括::1 fail-fast简介2 fail-fast示例 ...
 - Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
		
概要 前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类——LinkedList.和学习ArrayList一样,接下来呢,我们先对Linked ...
 - Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
		
概要 这一章,我们对HashMap进行学习.我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap.内容包括:第1部分 HashMap介绍第2部分 HashMa ...
 - Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
		
概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...
 - Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
		
概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Ja ...
 - Java 集合系列18之 Iterator和Enumeration比较
		
概要 这一章,我们对Iterator和Enumeration进行比较学习.内容包括:第1部分 Iterator和Enumeration区别第2部分 Iterator和Enumeration实例 转载请 ...
 - Java 集合系列 09 HashMap详细介绍(源码解析)和使用示例
		
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
 - Java 集合系列 10 Hashtable详细介绍(源码解析)和使用示例
		
java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...
 
随机推荐
- Linux 命令整理 (有不正确的随时补充)
			
du 概述: Linux下命令,统计目录(或文件)所占磁盘空间的大小. 语法: du[-abcDhHklmsSx][-L<符号连接>][-X<文件>][--block-size ...
 - python多线程学习二
			
本文希望达到的目标: 多线程同步原语:互斥锁 多线程队列queue 线程池threadpool 一.多线程同步原语:互斥锁 在多线程代码中,总有一些特定的函数或者代码块不应该被多个线程同时执行,通常包 ...
 - rocketmq源码打包步骤
			
1,从git上面克隆好源码之后,进入rocketmq目录,执行: mvn -Prelease-all -DskipTests clean install 2,打包完成之后,进入distribution ...
 - 玩转spring boot——结合docker
			
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 liunx机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有 ...
 - 杨韬的Python/Jupyter学习笔记
			
Python语法学习 https://zhuanlan.zhihu.com/p/24162430 Python 安装库 安装Jupyter Notebook 先安装Python cmd 进入K:\Ju ...
 - 牛客网 完数VS盈数
			
题目链接:https://www.nowcoder.com/practice/ccc3d1e78014486fb7eed3c50e05c99d?tpId=40&tqId=21351&t ...
 - Hdu2602 Bone Collector (01背包)
			
Problem Description Many years ago , in Teddy’s hometown there was a man who was called “Bone Collec ...
 - 20190408Linux权限管理week1_day5
			
权限概述 Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者).group(和所有者同组的用户).others(其他人,除了所有者,除了同组的用户以及除了超级管理员),且3种身 ...
 - 【 剑指Offer 1 】数据结构
			
数据结构是技术面试中的重点,总结以下几种常见的必须熟练掌握数据结构. 数组 字符串 链表 树 栈和队列 数组和字符串是两种最基本的数据结构,连续内存: 链表和树是面试中出现频率最高的: 栈与递归密切相 ...
 - Python events
			
Events不同线程之间同步对象 参数说明: # 实例化event对象 event = threading.Event() # 等待检测标志位被设定,标志位设置后就不阻塞了 # 客户机线程可以等待设置 ...