`
prodream
  • 浏览: 106171 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java.util包中几个重要集合类描述

    博客分类:
  • Java
阅读更多

软件包 java.util 重要的部分用红色标示

包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。

请参见:
描述

接口摘要
Collection<E> Collection 层次结构 中的根接口。
Comparator<T> 比较函数强行对某些对象 collection 进行整体排序
Enumeration<E> 实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。
EventListener 所有事件侦听器接口必须扩展的标记接口。
Formattable Formattable 接口必须通过需要执行自定义格式化(使用 Formatter's' 转换说明符)的任何类来实现。
Iterator<E> 对集合进行迭代的迭代器。
List<E> 有序的 collection(也称为序列)。
ListIterator<E> 系列表迭代器,允许程序员按任一方向遍历列表、迭代期间修改列表,并获得迭代器在列表中的当前位置。
Map<K,V> 将键映射到值的对象。
Map.Entry<K,V> 映射项(键-值对)。
Observer 一个可在观察者要得到 observable 对象更改通知时可实现 Observer 接口的类。
Queue<E> 在处理元素前用于保存元素的集合。
RandomAccess List 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。
Set<E> 一个不包含重复元素的 collection。
SortedMap<K,V> 保证按照键的升序排列的映射,可以按照键的自然顺序(参见 Comparable 接口)进行排序,或者通过创建有序映射时提供的比较器进行排序。
SortedSet<E> 保证迭代器按照元素递增顺序遍历的集合,可以按照元素的自然顺序(参见 Comparable)进行排序,或者按照创建有序集合时提供的 Comparator进行排序。

类摘要
AbstractCollection<E> 此类提供了 Collection 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。
AbstractList<E> 此类提供 List 接口的骨干实现,从而最大限度地减少了实现由“随机访问”数据存储(如数组)支持的接口所需的工作。
AbstractMap<K,V> 此类提供了 Map 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。
AbstractQueue<E> 此类提供某些 Queue 操作的骨干实现。
AbstractSequentialList<E> 此类提供了 List 接口的骨干实现,从而最大限度地减少了实现受“连续访问”数据存储(如链接列表)支持的此接口所需的工作。
AbstractSet<E> 此类提供 Set 接口的骨干实现,从而最大限度地减少了实现此接口所需的工作。
ArrayList<E> List 接口的大小可变数组的实现。
Arrays 此类包含用来操作数组(比如排序和搜索)的各种方法。
BitSet 此类实现了一个按需增长的位向量。
Calendar Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Collections 此类完全由在 collection 上进行操作或返回 collection 的静态方法组成。
Currency 表示货币。
Date Date 表示特定的瞬间,精确到毫秒。
Dictionary<K,V> Dictionary 类是任何可将键映射到相应值的类(如 Hashtable)的抽象父类。
EnumMap<K extends Enum<K>,V> 与枚举类型键一起使用的专用 Map 实现。
EnumSet<E extends Enum<E>> 与枚举类型一起使用的专用 Set 实现。
EventListenerProxy 将一组附加参数与侦听器关联的 EventListener 类的抽象包装器类。
EventObject 所有事件状态对象都将从其派生的根类。
FormattableFlags 将 FomattableFlags 传递给 Formattable.formatTo() 方法,并修改 Formattables 的输出格式。
Formatter printf 风格的格式字符串的解释程序。
GregorianCalendar GregorianCalendarCalendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
HashMap<K,V> 基于哈希表的 Map 接口的实现。
HashSet<E> 此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。
Hashtable<K,V> 此类实现一个哈希表,该哈希表将键映射到相应的值。
IdentityHashMap<K,V> 此类利用哈希表实现 Map 接口,比较键(和值)时使用引用相等性代替对象相等性。
LinkedHashMap<K,V> Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。
LinkedHashSet<E> 具有可预知迭代顺序的 Set 接口的哈希表和链接列表实现。
LinkedList<E> List 接口的链接列表实现。
ListResourceBundle ListResourceBundleResourceBundle 的一个抽象类,用于管理方便而又易于使用的列表中的语言环境资源。
Locale Locale 对象表示了特定的地理、政治和文化地区。
Observable 此类表示模型视图范例中的 observable 对象,或者说“数据”。
PriorityQueue<E> 一个基于优先级堆的极大优先级队列
Properties Properties 类表示了一个持久的属性集。
PropertyPermission 此类用于属性权限。
PropertyResourceBundle PropertyResourceBundleResourceBundle 的一个具体子类,它使用属性文件中的静态字符串集合来管理语言环境资源。
Random 此类的实例用于生成伪随机数流。
ResourceBundle 资源包包含特定于语言环境的对象。
Scanner 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。
SimpleTimeZone SimpleTimeZoneTimeZone 的具体子类,表示一个使用格里高利历的时区。
Stack<E> Stack 类表示后进先出(LIFO)的对象堆栈。
StringTokenizer string tokenizer 类允许应用程序将字符串分解为标记。
Timer 一种线程设施,用于安排以后在后台线程中执行的任务。
TimerTask 由 Timer 安排为一次执行或重复执行的任务。
TimeZone TimeZone 表示时区偏移量,也可以计算夏令时。
TreeMap<K,V> SortedMap 接口的基于红黑树的实现。
TreeSet<E> 此类实现 Set 接口,该接口由 TreeMap 实例支持。
UUID 表示通用惟一标识符 (UUID) 的类。
Vector<E> Vector 类可以实现可增长的对象数组。
WeakHashMap<K,V> 弱键 实现的基于哈希表的 Map

枚举摘要
Formatter.BigDecimalLayoutForm

异常摘要
ConcurrentModificationException 当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。
DuplicateFormatFlagsException 格式说明符中提供重复标志时抛出的未经检查的异常。
EmptyStackException 该异常由 Stack 类中的方法抛出,以表明堆栈为空。
FormatFlagsConversionMismatchException 转换与标志不兼容时抛出未经检查的异常。
FormatterClosedException 格式化程序已关闭时抛出的未经检查的异常。
IllegalFormatCodePointException 将具有 Character.isValidCodePoint(int) 所定义的无效 Unicode 代码点的字符传递给 Formatter 时,抛出未经检查的异常。
IllegalFormatConversionException 当对应于格式说明符的参数为不兼容的类型时,抛出未经检查的异常。
IllegalFormatException 当格式字符串包含非法语法,或者包含与给定参数不兼容的格式说明符时,将抛出未经检查的异常。
IllegalFormatFlagsException 当给出非法组合标志时,抛出未经检查的异常。
IllegalFormatPrecisionException 当精度为除 -1 以外的负值、转换类型不支持某个精度或者值在其他方面不受支持时,将抛出未经检查的异常。
IllegalFormatWidthException 当格式宽度为除 -1 以外的负值或其他不受支持的值时,将抛出未经检查的异常。
InputMismatchException Scanner 抛出,表明用于检索的标记与期望类型的模式不匹配,或者该标记处在期望类型的范围之外。
InvalidPropertiesFormatException 当按照 Properties 规范,输入内容不符合属性集合的正确 XML 文档类型,从而无法完成操作时,抛出此异常。
MissingFormatArgumentException 如果格式说明符没有相应的参数,或者参数索引引用了不存在的参数时,则抛出未经检查的异常。
MissingFormatWidthException 请求格式宽度时抛出未经检查的异常。
MissingResourceException 缺少资源时抛出此异常。
NoSuchElementException EnumerationnextElement 方法抛出,表明枚举中没有更多的元素。
TooManyListenersException TooManyListenersException 异常用作 Java Event 模型的一部分来注释和实现多播 Event Source 的单播特例。
UnknownFormatConversionException 给定未知的转换时所抛出的未经检查的异常。
UnknownFormatFlagsException

给定未知标志时所抛出的未经检查的异常。

List与Set的比较

Collection是用于集合的基本接口,定义了保存一组对象(元素)的语义。

List

继承自Collection,次序是List最重要的特点;它确保维护元素特定的顺序,允许重复元素。List为Collection添加了许多方法,使得能够向List中间插入与移除元素(只推荐LinkedList使用)。

2.一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。

3.List 接口提供了 4 种对列表元素进行定位(索引)访问方法。这个功能推荐使用LinkedList

Set 继承自Collection, 存入Set的每个元素必须是唯一的,因为Set不保存重复元素。加入Set的Object必须定义equals()方法以确保对象的唯一性。

LinkedList,ArrayList,Vector比较
LinkedList 实现了List接口,它内部使用一个双链表来实现,非同步。这样,如果元素经常需要在连接表中插入或删除,它就比ArryList更高效
ArrayList 实现了List接口,它内部通过数组来实现,非同步。它允许对元素进行快速随机访问,但是向List中间插入与移除元素的速度很慢。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素,因为这比LinkedList开销要大很多。
Vector

同样实现了List接口,除了他是同步外,机会和Array一样。处于效率的考虑,在需要同步的时候才选择Vector,否则选择Array。

它具有方法addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast(),这些方法(没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

HashMap与HashTable比较

HashMap 实现Map接口,内部使用一个哈希表来实现,其元素的value允许为null,非同步
HashTable 继承自Dictionary,为数据结构哈希表的简单实现。它和Map接口类型,都是允许用户在key对象和valu对象之间建立关系。值得注意的是,哈希表数据结构的特性是所有key查找时间几乎都一样,如果不需要单端查找某个元素,而是顺序检索,那么应该用ArrayList。HashTable也是同步的

经过上面的比较,大致给出使用集合的一点建议:

非同步情况下

1,对应经常需要插入、删除操作的情况,使用LinkedList

2,对于顺序检索的情况,使用ListIterator

3,重要用来单个元素快速访问情况,ArrayList

分享到:
评论

相关推荐

    java.util包介绍.pdf

    `java.util`包还定义了几个异常类,用于处理特定情况下的错误,如`EmptyStackException`、`NoSuchElementException`等。 ### 结论 `java.util`包是Java开发中不可或缺的一部分,它提供了一系列功能强大且易于使用...

    The java.util.concurrent Synchronizer Framework

    Java平台在J2SE 1.5版本中引入了`java.util.concurrent`包,这是一系列中等层次的并发支持类集合,通过Java社区过程(Java Community Process, JCP)的Java规范请求(Java Specification Request, JSR)166创建而成...

    java的.awt包和java.util包的区别

    - **Collection**:这是一个接口,所有集合类的根接口。 - **List**:继承自Collection,用于存储有序的元素序列。 - **Set**:同样继承自Collection,用于存储唯一的元素集合。 - **Map**:一个键值对映射的...

    java并发工具包 java.util.concurrent中文版-带书签版

    在`java.util.concurrent`包中,主要包含以下几个核心知识点: 1. **线程池(ExecutorService)**:线程池是一种线程管理机制,通过复用已存在的线程来减少创建和销毁线程的开销。`ExecutorService`接口是线程池的...

    Java Vector 的相关知识

    `Vector`是Java集合框架中的一个类,它在早期版本的Java中被广泛使用。它实现了`List`接口,并提供了线程安全的方法来操作列表元素。`Vector`的实现基于数组,能够动态地增长其大小。与其他集合类型如`ArrayList`...

    java-util-1.3.1.jar.zip

    在`java-util`包中,我们通常会发现以下几类常见的工具类: 1. **集合框架扩展**:可能包含对Java内置集合类(如List、Set、Map)的增强,提供更高效的操作,例如快速排序、线程安全的实现等。 2. **日期和时间...

    java util工具类1

    首先,我们来详细了解`java.util`包中的几个关键工具类: 1. **ArrayList和LinkedList**:这两个都是`List`接口的实现,用于存储有序的元素序列。ArrayList基于动态数组实现,提供快速的随机访问,但插入和删除操作...

    java 参考手册 (.chm)

    10. **集合框架**:`java.util`包中的`List`、`Set`、`Map`等接口以及它们的实现类,如`ArrayList`、`HashSet`、`HashMap`,构成了Java强大的集合框架,用于存储和操作对象。 Java参考手册是每个Java开发者不可或缺...

    Java.util包简介并教您如何开发应用之二

    读完了Java.util包简介并教您如何开发应用之一接下来我们继续介绍Java的实用工具类库Java.util包。...下面我们将具体介绍其中几个重要的类。图1.1java.util包的基本层次结构1.2日期类DateJava在日期类中封

    java.util源码-java-source-code:java.util源码阅读

    Java.util 包是 Java 核心库的重要组成部分,它包含了许多用于日常编程的工具类和接口,如集合框架、日期时间处理、随机数生成、事件处理等。深入理解这个包的源码对于提升Java开发者的技能至关重要。在这里,我们将...

    JAVA的API,仅供参考

    在JDK1.8中,Java API涵盖了以下几个主要部分: 1. **基础类库**:这是Java API的基础,包括`java.lang`包,其中定义了所有Java程序都隐式导入的基本类,如`Object`、`String`、`Integer`等。此外,还有`java.io`...

    Java常用工具类

    本篇将详细介绍Java开发中的常用工具类,涵盖以下几个方面: 1. **集合操作:** `java.util.Collections` 类提供了对集合对象进行各种操作的静态方法,如排序、填充、反转等。例如,`Collections.sort()` 可以对...

    JAVA-API-1.6中文文档.zip

    Java API 1.6中文文档是Java开发人员的重要参考资料,它包含了Java标准版(Java SE)1.6版本的所有公开接口、类和方法的详细说明。API(应用程序编程接口)是一组预先定义的函数,允许开发者创建软件时利用操作系统...

    java官方中文API

    `java.lang.reflect`和`java.lang.Class`类是反射的主要接口,泛型在`java.util`包的集合类中广泛应用。 通过深入学习和理解Java官方中文API,开发者可以掌握Java编程的基本语法和高级特性,从而编写出高效、稳定的...

    Java1.6API中文版

    在Java 1.6中,主要包含以下几个关键的知识点: 1. **基础类库**:如`java.lang`包中的`String`、`Integer`、`Object`等基础类,它们提供了基本数据类型的操作和面向对象编程的基础。 2. **集合框架**:包括`java....

    JDK_API_1.8

    6. **泛型**:自Java 5起,泛型被引入,增强了类型安全,`java.util`包中的集合类广泛使用了泛型。 7. **NIO (New Input/Output)**:`java.nio`包提供了非阻塞I/O,适用于高并发、低延迟的系统。 8. **Lambda...

    Java API 文档 jdk-17.0.2-doc-all

    2. **集合框架**:`java.util`包中的集合框架是Java编程的核心部分,包括`ArrayList`、`LinkedList`、`HashMap`、`HashSet`等数据结构。了解它们的特点、用法和性能是每个Java开发者的基本功。 3. **输入/输出流**...

    javaapi.zip

    `java.util` 提供了集合框架、日期时间、随机数生成等工具类。`java.io` 包则涉及输入输出操作,如文件读写、流处理等。 2. **集合框架**:Java API 中的集合框架是数据结构和算法的重要实现,包括 List(如 ...

    Java1.8API

    2. **集合框架**:在`java.util`包中,集合框架是Java 1.8的重要特性之一,包括List(如ArrayList、LinkedList)、Set(如HashSet、TreeSet)、Map(如HashMap、TreeMap)等接口和实现类。Java 8引入了新的集合接口...

    java1.8 中文api

    Java 1.8 API是Java开发中的重要参考资料,它包含了Java平台标准版(Java SE)1.8版本的所有公共类、接口、枚举和注解的详细说明。这个API文档以中文形式提供,方便中国开发者理解和使用。CHM(Compiled HTML Help)...

Global site tag (gtag.js) - Google Analytics