一、集合框架

集合框架是一个用来代表和操纵集合的统一架构。所有的集合框架都包含如下内容:

  • 接口:是代表集合的抽象数据类型。接口允许集合独立操纵其代表的细节。在面向对象的语言,接口通常形成一个层次。
  • 实现(类):是集合接口的具体实现。从本质上讲,它们是可重复使用的数据结构。
  • 算法:是实现集合接口的对象里的方法执行的一些有用的计算,例如:搜索和排序。这些算法被称为多态,那是因为相同的方法可以在相似的接口上有着不同的实现。

Java 集合框架提供了一套性能优良,使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包。

二、Collection方法

public interface Collection<E>extends Iterable<E>

返回值方法说明
booleanadd(E e)向此 collection 添加指定的元素
booleanaddAll(Collection<? extends E> c)将指定 collection 中的所有元素都添加到此 collection 中
booleanremove(Object o)从此 collection 中移除指定元素的单个实例,如果存在的话
booleanremoveAll(Collection<?> c)移除此 collection 中那些也包含在指定 collection 中的所有元素
voidclear()移除此 collection 中的所有元素
booleanretainAll(Collection<?> c)仅保留此 collection 中那些也包含在指定 collection 的元素
booleancontains(Object o)如果此 collection 包含指定的元素,则返回 true
booleancontainsAll(Collection<?> c)如果此 collection 包含指定 collection 中的所有元素,则返回 true
booleanisEmpty()如果此 collection 不包含元素,则返回 true
intsize()返回此 collection 中的元素数
booleanequals(Object o)比较此 collection 与指定对象是否相等
inthashCode()返回此 collection 的哈希码值
Iterator<E>iterator()返回在此 collection 的元素上进行迭代的迭代器
Object[]toArray()返回包含此 collection 中所有元素的数组

三、Set和List

public interface Set<E>extends Collection<E>

public interface List<E>extends Collection<E>

  List实现类  

ArrayListVectorLinkedList
底层实现数组数组链表
线程不安全安全不安全

  Set实现类  

 HashSetLinkedHashSetTreeSet
底层实现哈希表链表+哈希表红黑树
有序性-

链表

1. 自然排序(元素具备比较性):

元素所属类实现Comparable接口

2. 比较器排序(集合具备比较性):

让集合接收一个Comparator的实现类对象

唯一性hashCode()+equals()

哈希表

比较的返回值是否为0
其它  实现了接口SortedSet(提供关于元素的总体排序的Set)

  Set和List比较  

接口SetList
顺序无序有序
重复不重复可重复
访问效率
删除,插入效率高(位置不变)低(位置改变)
实现类HashSet, LinkedHashSet, TreeSetArrayList, Vector, LinkedList

四、Map<K, V>

public interface Map<K,V>

public static interface Map.Entry<K,V> 映射项(键-值对)

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

此接口取代 Dictionary 类,后者完全是一个抽象类,而不是一个接口。

  Map方法  

返回值方法说明
Vput(K key, V value)将指定的值与此映射中的指定键关联
voidputAll(Map<? extends K, ? extends V> m)从指定映射中将所有映射关系复制到此映射中
Vremove(Object key)如果存在一个键的映射关系,则将其从此映射中移除
voidclear()从此映射中移除所有映射关系
booleancontainsKey(Object key)如果此映射包含指定键的映射关系,则返回 true
booleancontainsValue(Object value)如果此映射包含一个或多个键映射到指定值,则返回 true
Set<Map.Entry<K,V>>entrySet()返回此映射中包含的映射关系的 Set 视图
Set<K>keySet()返回此映射中包含的键的 Set 视图
Collection<V>values()返回此映射中包含的值的 Collection 视图
Vget(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null
booleanisEmpty()如果此映射未包含键-值映射关系,则返回 true
int size()返回此映射中的键-值映射关系数
booleanequals(Object o)比较指定的对象与此映射是否相等
inthashCode()返回此映射的哈希码值

  Map的实现类  

HashMapLinkedHashMapHashTableTreeMap
底层实现哈希表链表+哈希表哈希表红黑树
唯一性

hashCode()

+equals()

哈希表

hashCode()

+equals()

比较的返回值是否为0
顺序 链表 

1. 自然排序(元素具备比较性):

元素所属类实现Comparable接口

2. 比较器排序(集合具备比较性):

让集合接收一个Comparator的实现类对象

其它线程不安全,效率高 线程安全,效率低

实现了接口SortedMap

(提供关于元素的总体排序的Map)

05-11 05:05
查看更多