最近有时间,重新啃一遍集合,提升代码质量,招聘必备,粗略总结,持续更新!!!
贴链接:http://www.360doc.com/content/12/0717/15/7662927_224736595.shtml
http://skyuck.iteye.com/blog/526358
集合框架接口
Collection
蓝色为接口,红色常用实现类
Collection
|_____
Set(
HashSet,LinkedHashSet)
| |_____
SortedSet(
TreeSet)
|_____
List(
LinkedList,ArrayList)
Set:
不能包含重复的元素,子接口SortedSet是一个按照升序排列的元素的Set。
List:
可以包含重复的元素,是一个有序的集合,提供了按索引访问的方式,有次序,位置不改变。
Iterator迭代器。
ArrayList
集合元素可以重复,可以存在多个null;
可以保持元素插入的顺序;
是用数组实现的,读取速度快,插入与删除速度慢(因为插入与删除时要移动后面的元素),适合于随机访问;
不是同步的,非线程安全;
LinkedList
集合元素可以重复;
可以保持元素的插入顺序;
双向链表来实现,删除与插入速度快,读取速度较慢,因为它读取时是从头向尾(如果节点在链的前半部分),或尾向头(如果节点在链的后半部分)查找元素。因此适合于元素的插入与删除操作;
不是同步的,非线程安全;
HashSet
集合元素不能重复,可以是null;
不保证元素的排列顺序;
不是同步的,非线程安全;
LinkedHashSet
集合元素不能重复,可以是null;
使用链表维护元素顺序,遍历集合时,会以元素的添加顺序访问集合元素;
不是同步的,非线程安全;
Iterator迭代器访问时性能比HashSet好,元素插入的性能稍次;
TreeSet
集合元素不能重复,不可以是null;
SortedSet接口的唯一实现类;
确保集合元素处于排序状态;
不是同步的,非线程安全;
排序的方式两种:自然排序(默认升序)
定制排序:实现Compartor接口的 int compare(T o1,T o2);方法
Map
蓝色为接口,红色常用实现类
Map(
HashMap,LinkedHashMap)
|_____
SortedMap(
TreeMap)
Map:
存储的是key-value对,不能包含重复的key,可以有重复的value。
SortedMap:
是一个按升序排列key的Map。
- 1.键集:Set<k> KeySet()
- 2.值集:Collection<k> values()
- 3.键值对集:Set<Map.Entry<k,v>> entrySet()
HashMap
允许一个null键与多个null值,若重复键,则覆盖以前值;
HashMap比TreeMap快;
不是同步的,非线程安全;
LinkedHashMap
允许一个null键与多个null值,若重复键,则覆盖以前值;
保存了元素的插入顺序;
不是同步的,非线程安全;
TreeMap
不允许null键,但允许多个null值,覆盖已有键值;
用键的整体顺序对元素排序,并将其组织成搜索树;
不是同步的,非线程安全;
WeakHashMap
与垃圾回收有关
遗留集合
均为线程安全的
Hashtable
实现Map接口,整体与HashMap类似;
Hashtable是线程安全的,写入时比较慢;
不允许空值和空键;
Vector
实现List接口,整体与ArrayList类似;
线程安全的,性能比较慢;
工具类Collections和Array
这两个类提供了封装器实现(Wrapper Implementations)、数据结构算法和数组相关的应用。
sort:排序,这里是一种类似于快速排序的方法,效率仍然是O(n * log n),但却是一种稳定的排序方法。
reverse:将线性表进行逆序操作。
rotate:以某个元素为轴心将线性表“旋转”。
swap:交换一个线性表中两个元素的位置。
……
Collections还有一个重要功能就是“封装器”(Wrapper),它提供了一些方法可以把一个集合转换成一个特殊的集合,如下:
unmodifiableXXX:转换成只读集合,这里XXX代表六种基本集合接口:Collection、List、Map、Set、SortedMap和SortedSet。如果你对只读集合进行插入删除操作,将会抛出UnsupportedOperationException异常。
synchronizedXXX:转换成同步集合。
singleton:创建一个仅有一个元素的集合,这里singleton生成的是单元素Set,singletonList和singletonMap分别生成单元素的List和Map。
分享到:
相关推荐
Java集合分类总结 Java集合分类总结是Java语言中的一种容器,用于存储和管理多个对象。集合可以自动扩容,部分集合允许存放不同类型的元素。集合的主要分类有List、Set、Map等。 List集合是一种有序列表,允许存放...
本文将对Java集合框架中的Collection接口及其相关接口、类进行深入的探讨。 首先,Collection接口是所有单值容器的基础,它是Set、List和Queue接口的父接口。Collection接口定义了通用的操作方法,如`add()`用于...
### Java集合类总结 在Java开发中,集合类(Containers)是极其重要的组成部分,它们作为开发者日常编程不可或缺的工具,不仅让代码变得更加简洁、高效,还能显著提升程序的功能性和灵活性。本文将对Java标准类库中...
JAVA集合类总结[整理].pdf
"Java集合类总结" Java集合类是Java语言中的一种重要数据结构,用于存储和管理数据。Java集合类可以分为两种:Collection接口和Map接口。Collection接口有两个子接口:List接口和Set接口。List接口是有序的,可以...
### Java集合类详解总结 在Java编程中,集合框架(Collection Framework)是处理一组对象的强大工具,它提供了标准的数据结构来存储和操作这些对象。Java集合框架主要包括`Collection`、`Set`、`List`、`Queue`、`...
### Java集合框架总结 #### 一、Java集合框架概述 Java集合框架是Java标准库的一部分,它提供了一系列的接口和类来存储和操作各种类型的对象集合。这些接口和类遵循一致的设计模式,使得开发人员可以方便地管理和...
Java 集合类面试题总结 Java 集合类是 Java 语言中的一种重要组件,用于存储和操作数据。下面总结了 Java 集合类的一些常见问题和答案。 HashMap 和 Hashtable 的区别 HashMap 和 Hashtable 都是 Java 中的散列表...
### Java集合排序及Java集合类详解 #### 一、集合框架概述 集合框架是Java编程语言的核心组件之一,用于组织和操作数据集。Java集合框架提供了多种数据结构,包括列表(List)、集(Set)和映射(Map),这些数据结构...
总结来说,Java集合类通过提供丰富的接口和实现,使得Java开发者可以灵活选择适合特定需求的数据结构,提高代码的可读性和性能。理解并熟练掌握这些集合类和接口,对于编写高质量的Java程序至关重要。
Java集合类是Java编程语言中不可或缺的一部分,它们提供了一种高效、灵活的方式来存储和操作对象。集合类的主要接口包括Collection、List、Set和Map,这些接口定义了各种操作集合对象的方法,比如添加、删除、修改和...
Java集合类总结 Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解2:Queue和LinkedList Java集合详解3:Iterator,fail-fast机制与比较器 Java集合详解4:HashMap和HashTable Java...
本文将深入讲解Java集合类,特别是Collection接口和其下的List、Set,以及Map接口中的几个重要实现类。 首先,我们来看Collection接口。Collection是最基本的集合接口,它代表一组Object,即它的元素。Collection...
java集合类知识总结--思维导图文件xmind xmind文件类型 总结了java常用集合相关问题 包括map、set、list、数组等
以下是对标题和描述中提到的Java集合类的详细总结: 首先,所有Java集合类都继承自`java.util.Collection`接口。`Collection`接口是所有集合框架的基础,它定义了集合的基本操作,如添加、删除和遍历元素。`...
Java集合类总结 Java集合详解:一文读懂ArrayList,Vector与Stack使用方法和实现原理 Java集合详解:Queue和LinkedList Java集合详解:迭代器,快速失败机制与比较器 Java集合详解:HashMap和HashTable Java集合详解...