java.util几个主要类说明
java.util几个重要类说明
转载:http://blog.****.net/li_jinjian2005/article/details/2827892
软件包 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
类是一个抽象类,它为特定瞬间与一组诸如YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等
日历字段
之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。 |
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 |
GregorianCalendar
是
Calendar
的一个具体子类,提供了世界上大多数国家使用的标准日历系统。 |
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 |
ListResourceBundle
是
ResourceBundle
的一个抽象类,用于管理方便而又易于使用的列表中的语言环境资源。 |
Locale |
Locale
对象表示了特定的地理、政治和文化地区。 |
Observable | 此类表示模型视图范例中的 observable 对象,或者说“数据”。 |
PriorityQueue<E> | 一个基于优先级堆的极大优先级队列 。 |
Properties |
Properties
类表示了一个持久的属性集。 |
PropertyPermission | 此类用于属性权限。 |
PropertyResourceBundle |
PropertyResourceBundle
是
ResourceBundle
的一个具体子类,它使用属性文件中的静态字符串集合来管理语言环境资源。 |
Random | 此类的实例用于生成伪随机数流。 |
ResourceBundle | 资源包包含特定于语言环境的对象。 |
Scanner | 一个可以使用正则表达式来分析基本类型和字符串的简单文本扫描器。 |
SimpleTimeZone |
SimpleTimeZone
是
TimeZone
的具体子类,表示一个使用格里高利历的时区。 |
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 | 由
Enumeration
的
nextElement
方法抛出,表明枚举中没有更多的元素。 |
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