Java集合经常使用类特色整理

集合的结构以下图所示:安全


集合的两个顶级接口分别为:Collection和Map函数

Collection下有两个比较经常使用的接口分别是List(列表)和Set(集),其中List能够存储重复元素,元素是有序的(存取顺序一致),能够经过List脚标来获取指定元素;而Set不能够有重复元素,元素是无序的。线程

List接口中,比较经常使用的类有三个:ArrayList、Vactor、LinkedList。3d

ArrayList :线程不安全的,对元素的查询速度快。cdn

Vector :线程安全的,多了一种取出元素的方式:枚举(Enumeration),但已被ArrayList取代。对象

LinkedList :链表结构,对元素的增删速度很快。blog

Set接口中,比较经常使用的类有两个:HashSet、TreeSet:排序

HashSet:要保证元素惟一性,须要覆盖掉Object中的equals和hashCode方法(由于底层是经过这两个方法来判断两个元素是不是同一个)。接口

TreeSet:以二叉树的结构对元素进行存储,能够对元素进行排序。get

排序的两种方式:

一、元素自身具有比较功能,元素实现Comparable接口,覆盖compareTo方法。

二、创建一个比较器对象,该对象实现Comparator接口,覆盖compare方法,并将该对象做为参数传给TreeSet的构造函数(能够用匿名内部类)。

Map接口其特色是:元素是成对出现的,以键和值的形式体现出来,键要保证惟一性:经常使用类有:HashMap,Hashtable ,TreeMap。

HashMap:线程不安全等的,容许存放null键null值。

Hashtable:线程安全的,不容许存放null键null值。

TreeMap:能够对键进行排序(要实现排序方法同TreeSet)。

Collection和Map两个接口对元素操做的区别:

存入元素:

Collection接口下的实现类经过add方法来完成,而Map下是经过put方法来完成。

取出元素:

Collection接口下:List接口有两种方式:一、get(脚标);二、经过Iterator迭代方式获取元素;而Vactor多了一种枚举(Enumeration)的方式。Set接口经过迭代的方式获取元素。

Map接口下:先通地keySet获取键的系列,而后经过该系列使用Iterator迭代方式获取元素值。

相关文章
相关标签/搜索