java.util几个重要类说明
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?方法抛出,表明枚举中没有更多的元素。TooManyListenersExceptionTooManyListenersException?异常用作 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