java 聚合框架的概要介绍

java 集合框架的概要介绍

来自:http://www.computersci.net/articles/jdk1.2/docs/guide/collections/reference.html

集合框架包括:

  • Collection 接口 - 集合的主要操作方法。
    • Collection - 一组对象。没有任何有关集合的顺序(如果有)或其中是否包含重复元素的假定。
    • Set - 常见集的抽象。不允许有重复元素,可以排序或不排序。它扩展 Collection 接口。
    • List - 已排序集合,也称为序列。一般允许有重复,允许按位置访问。它扩展 Collection 接口。
    • Map - 从关键字到值的映射。每个关键字最多能映射一个值。
    • SortedSet - 其元素自动排序的集合,排序依据是其自然顺序(参见 Comparable 接口),或者是创建 SortedSet 实例时所提供的 Comparator 对象。它扩展 Set 接口。
    • SortedMap - 将映射关系自动按关键字排序的映射,排序依据是关键字的自然顺序或创建 SortedMap 实例时所提供的比较器。扩展 Map 接口。
  • General-purpose 实现 - collection 接口的主要实现。
    • HashSet - Set 接口的 hash 表实现,是 Set 接口最好的全面实现。
    • TreeSet SortedSet 接口的红-黑树形结构实现。
    • ArrayList - List 接口的大小可变数组实现(实质上为非同步 Vector),是 List 接口最好的全面实现。
    • LinkedList - List 接口的双重链接列表实现。如果经常在列表内插入或删除元素,使用它即可提供比 ArrayList 实现更好的性能。对于双端队列 (deques) 很有用。
    • HashMap - Map 接口的 hash 表实现(实质上是一种支持 null 关键字和值的非同步 Hashtable,是 Map 接口最好的全面实现。
    • TreeMap - SortedMap 接口的红-黑树形结构实现。
  • Wrapper 实现 - 用于与其它实现配合使用的功能增强实现。只能通过 static factory 方法访问。
    • Collections.unmodifiableInterface - 返回不可修改的指定集合视图。如果用户试图修改,将抛出 UnsupportedOperationException 异常。
    • Collections.synchronizedInterface - 返回由指定集合(通常为非同步)支持的同步集合。 只要所有对支持集合的访问都通过已返回集合进行,就能保证线程安全。
  • Convenience 实现 - collection 接口的高性能“微实现”。
    • Arrays.asList - 允许将数组视为列表。
    • EMPTY_SET 和 EMPTY_LIST - 表示空集和空列表(不可变)的常量。
    • singleton - 返回仅包含指定对象的不可变“单”集。
    • nCopies - 返回包含指定对象 n 份副本的不可变列表。
  • Legacy 实现 - 较旧的 collection 类,已经过更新以实现 collection 接口。
    • Vector - List 接口的同步大小可变数组实现,具有附加的“legacy 方法”。
    • Hashtable -不允许 null 关键字或值的 Map 接口的同步 hash 表实现,具有附加的“legacy 方法”。
  • Special Purpose 实现
    • WeakHashMap - Map 接口的一种实现,仅将弱引用存储到其关键字中。由于仅存储弱引用,因此当关键字不再在 WeakHashMap 之外被引用时,即允许删除关键字-值对。该类提供了最简单的利用弱引用功能的方式。它对实现“类注册服务程序”式的数据结构很有用。当任何线程都不能达到其关键字时,其中的项实用程序将消失。
  • Abstract 实现 - collection 接口的部分实现,有助于自定义实现。
    • AbstractCollection - 既非集又非列表(如“袋”或多集)的集合的核心实现。
    • AbstractSet - 集的框架实现。
    • AbstractList - 由随机访问数据源(如数组)支持的列表的框架实现。
    • AbstractSequentialList - 由顺序访问数据源(如链接列表)支持的列表的框架实现。
    • AbstractMap - 映射的框架实现。
  • 算法
    • sort(List) - 使用合并排序算法将列表排序。与高质量的 quicksort 相比,它提供了中等的性能,保证了 O(n*log n) 性能(与 quicksort 不同)和稳定性(与 quicksort 不同)。稳定排序中不对相同元素进行重新排序。
    • binarySearch(List, Object) - 使用二进制搜索算法在有序列表中搜索元素。
    • reverse(List) - 使列表中元素的顺序倒转。
    • shuffle(List) - 随机排列列表中的元素。
    • fill(List, Object) - 使用指定值覆盖列表中的每一个值。
    • copy(List dest, List src) - 将源列表复制到目的列表中。
    • min(Collection) - 返回集合中最小的元素。
    • max(Collection) - 返回集合中最大的元素。
  • 基础结构
    • 迭代器 - 类似于常见的 Enumeration 接口,但功能更强大,具有改进的方法名称。
      • Iterator - 除具 Enumeration 接口的功能外,还允许用户使用定义好且有用的语义从支持集合中删除元素。
      • ListIterator - 用于列表的迭代器。除具 Iterator 接口的功能外,还支持双向迭代、元素替换、元素插入和索引检索。
    • 顺序
      • Comparable - 将自然顺序赋予实现它的类。自然顺序可用于将列表排序,或者保持有序集或映射中的顺序。许多类都已经过更新以实现这个接口。
      • Comparator - 表示顺序关系,可用于将列表排序,或者保持有序集或映射中的顺序。可以覆盖类型的自然顺序,或对没有实现 Comparable 接口的对象排序。
    • 运行异常
      • UnsupportedOperationException - 当调用集合不支持的可选操作时产生。
      • ConcurrentModificationException - 如果在迭代过程中支持集合被意外地修改,则迭代器和列表迭代器将产生该异常。如果意外地修改了支持列表,列表的子列表视图也会产生该异常。
  • 数组实用程序
    • Arrays - 包含用于排序、搜索、比较和填充基本类型数组和对象数组的静态方法。
<!-- Body text ends here --><!-- ============================================================== -->