Java.util包详解:核心集合类与实用工具方法全面解析
Java.util是什么意思
1.util包结构
常用的集合类主要实现两个“超级接口”:Collection和Map。
1.1Collection有两个子接口:List和Set
List的特点是元素是有序的、重复的。
常用实现的集合类包括ArrayList、LinkedList和Vector(线程安全)。
Set的特点是元素无序,不能重复。
常用的集合类有HashSet、LinkedHashSet、TreeSet(可排序)。
1.2Map是键值对的集合
一个特点就是键值对无序的。
既独特又有意义。
值可以重复(这种说法实际上是不准确的,因为键和值实际上是相互关联的)。
常用的有HashMap、HashTable(线程安全)和TreeMap(可排序)。
1.3其他重要接口和类
上面是Java教材中经常提到的util包的数据收集结构。
但如果我们深入观察,我们会发现还有几个更重要的要素:
Iterator:迭代接口
集合类一旦实现了这个接口,就具有了迭代功能。
迭代最简单的实现是ArrayList,迭代过程实际上就是对数组进行迭代。
LinkedList、LinkedHashSet、LinkedHashMap的迭代过程就是链表的迭代。
这两种情况的迭代效率都非常高,并且迭代时间与容器中元素的数量成正比。
但HashSet和HashMap的迭代效率稍低。
由于使用了哈希表,因此元素在数组中进行哈希处理。
迭代时必须读取整个数组,迭代时间与容器的容量成正比。
Comparator:比较接口
实现该接口后,可以使用Compare()方法对集合元素进行比较和排序
AbstractXXX:骨架类
所谓的骨架类,其实就是各个集合核心代码的实现,所以继承这个抽象类的子类要做的工作就少一些。
例如摘要列表表示“随机访问”集合的核心代码实现(基本数组实现)。
AbstractSequentialList是“连续访问”集合的基本代码实现(链表的基本实现)。
集合、数组
集合工具类和数组工具类。
看来Java中的工具类喜欢在相应的接口或者类名后面加一个S来代表他们的工具类。
Java中java.util一般可用在哪些项目中
本质上,如果没有这个包,你就无法运行javaweb项目...包java.util描述了集合框架、传统集合类、事件模型、日期和时间功能、国际化和各种实用程序类(字符列标记器、随机数生成器、位数组、日期、堆栈类、向量类等)。包规范CollectionsFrameworkOverviewCollectionsFrameworkAnnotatedOutline相关文档有关概述、教程、示例、指南和工具文档,请参阅:CollectionsFrameworkTutorialCollectionsFrameworkDesignFAQ起始于:JDK1.0Java实用类库java.util包。
在这个包中,Java提供了一些实用的方法和数据结构。
例如,Java提供了Date(数据)和Calendar(日历)类来生成和检索日期和时间,RandomNumber(随机数)类来生成各种类型的随机数,以及Stack(堆栈)类)和Vector(向量)。
还提供了。
(Vector)、Bitset和Hashtable类代表相应的数据结构。
图1.1显示了java.util包的基本层次结构图。
下面我们将详细介绍一些重要的类。
┌java.util.BitSet│java.util.Calendar│└java.util.GregorianCalendar│java.util.Date│java.util.Dictionary│└java.util.Hashtable│└java.util.Properties│java.util.事件Object│java.util.ResourceBundle┌普通类┤§java.util.ListResourceBundle│└java.util.PropertyResourceBundle│java.util.Local│java.util.Observable│java.util.Random│java.util.StringTokenizer││java.util.Vector│└java.util.StackJava.util┤└java.util.TimeZone│└java.util.SimpleTimeZone│┌java.util.Enumeration§接口┤java.util.事件监听呵呵│─java.util.Observer│┌java.util.EmptyStackException│异常类┤java.util.MissingResourceException│java.util.NoSuchElementException│java.util.TooManyListenersException