java.util包简介
java.util包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)。集合类、时间处理模式、日期时间工具等各类常用工具包
java的集合框架为程序提供了一种处理对象组的标准方式。设计了一系列标准泛型接口:
⑴Collection ()接口,扩展了Iterable接口,位于集合层次结构的顶部,因此所有的集合都实现Collection接口,并提供了iterator()方法来返回一个迭代器。用add()方法添加对象,remove()方法删除元素,clear()删除集合所有元素(size=0),contains()方法查看集合是否包含对象,toArray()方法返回集合元素数组,equals()方法比较两个集合是否相等,size()方法返回集合中元素的数目,isEmpty()判断集合是否为空,hashCode()返回调用集合的散列码,iterator()返回调用集合的迭代器。
⑵List()接口,扩展了Collection接口,存储一个序列的元素(列表基于0的索引),可以包含重复的元素,但不能有null值。获得特定位置的对象调用get()方法,用set()方法给特定位置元素赋值,用indexOf()或lastIndexOf()方法分别获得对象的第一个实例或最后一个实例所在的位置,subList()方法取子列表,listIterator()返回一个迭代器。
⑶Set接口,扩展了Collection接口,该集合不允许存在相同的元素(包括唯一null值)。SortedSet接口,扩展了Set接口并声明自已是升序的集合。First()或Last()方法分别获得第一或最后一个对象,subSet()获得子集,headSet()和tailSet()方法分别获得从头开始或直到末尾的子集。
⑷Queue(队列)接口,扩展了Collection接口,并声明一个队列行为(FIFO,先进先出列表)。Offer()方法在队列尾插入元素。element()和peek()方法获得但不移除队列的第一个元素,如果队列为空,element()抛出NoSuchElementException异常,peek()返回null。poll()和remove()方法获得并移除队列的第一个元素,如果队列为空,poll()返回null,remove()抛出异常。
⑸Comparator(比较器)接口,定义了两个方法:compare()和equals()方法,通过改写compare()方法,能够改变对象排序的方式。
⑹Iterator(迭代器)接口、ListIterator(列表迭代器,可进行双向遍历)接口,一般来说,使用迭代器在集合中遍历时应遵循下面的步骤:一通过集合的iterator()得到一个指向集合开始处的迭代器:Iterator itr=collectionObject.iterator();二设置一个判断是否有下一个元素的循环:如while(itr.hasNext()){。三在循环中取出下一个元素:如Object element=itr.next();
⑺RandomAccess(随机访问)接口。被ArrayList类和遗留的Vector类实现。
⑻Map(映射)接口、Map.Entry (Map的嵌套类、内部类)接口、SortedMap(默认按key键升序排列的映射)接口。映射是将键映射到值的对象,一个映射不能包含重复的键;每个键最多只能映射一个值。Map接口提供三种collection 视图:键集、值集合或键-值映射关系集。映射不是集合,因为它们不实现Collection接口,但是可以通过使用entrySet()方法获得键-值映射关系的集合视图跟效果,或使用keySet()方法获得键的集合视图,使用values()方法获得值的集合视图。put()方法将值放入映射中,get()得到与键k相关联的值。SortedMap接口增加了获取子映射的headMap()、tailMap()、subMap()方法和获取首尾键的firstKey()、lastKey()方法。Map.Entry接口定义了获取键值的getKey()、getValue()方法和替换值的setValue()方法。
Collection集合的有序是Set,Map的有序是TreeMap。
异常:试图增加一个不兼容的对象到集合或映射中,将抛出ClassCastException;如果使用无效索引,抛出IndexOutOfBoundException;null不允许存在于集合或映射中,如果试图使用null对象,抛出NullPointException;当修改不可改变的集合或映射时,抛出UnsupportedOperationException;当调用下一个对象不存在时,抛出NoSuchElementException;集合框架接口示意(父类∈子类):1、Collection∈⑴List,⑵Set∈SortedSet。2、Map∈SortedMap。
另外:
在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历 (Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量 (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.EventObject
│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.Stack
Java.util┤ └java.util.TimeZone
│ └java.util.SimpleTimeZone
│ ┌java.util.Enumeration
├接 口┤java.util.EventListener
│ └java.util.Observer
│ ┌java.util.EmptyStackException
└异常类┤java.util.MissingResourceException
│java.util.NoSuchElementException
└java.util.TooManyListenersException
图1.1 java.util包的基本层次结构
java.util包简介的更多相关文章
- java.util.concurrent简介
文章目录 主要的组件 Executor ExecutorService ScheduledExecutorService Future CountDownLatch CyclicBarrier Sem ...
- java util包概述
util是utiliy的缩写,意为多用途的,工具性质的包这个包中主要存放了:集合类(如ArrayList,HashMap等),随机数产生类,属性文件读取类,定时器类等类.这些类极大方便了Java编程, ...
- java zip 批量打包(java.util包和apache.tools包)
/** * 文件批量打包 * @param zipPath 打包路径 * @param files 批量文件 */ public void zipOut(String zipPath,File[] f ...
- 集合框架的类和接口均在java.util包中。 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换。
集合框架的类和接口均在java.util包中. 任何对象加入集合类后,自动转变为Object类型,所以在取出的时候,需要进行强制类型转换.
- java.util包详解
介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结 ...
- Java.util 包(Date 类、Calendar类、Random类)
java.util 包提供了一些实用的方法和数据结构. Date 类 Date 类表示日期和时间,里面封装了操作日期和时间的方法.Date 类经常用来获取系统当前时间. 构造方法: 构造方法 说明 D ...
- Java.util包简单总结
Java.util包简单总结 1. util包的框架 常用的集合类主要实现两个“super接口”而来:Collection和Map. 1.1 Collection有两个子接口:List和Set è¿é ...
- List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedList Set有两个实现类:HashSet和LinkedHashSet AbstractSet实现了Set
List,Set,Map在java.util包下都是接口 List有两个实现类:ArrayList和LinkedListSet有两个实现类:HashSet和LinkedHashSetAbstractS ...
- JDK_API剖析之java.util包
Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构. 一.接口 1.Collection<E> 接口 自1.2开始有 继承Iterable< ...
随机推荐
- linux的性能优化
转一位大神的笔记. linux的性能优化: 1.CPU,MEM 2.DISK--RAID 3.网络相关的外设,网卡 linux系统性能分析: top:linux系统的负载,CPU,MEM,SWAP,占 ...
- pm2 知识点
pm2:node进程管理工具 pm2 命令: pm2 命令 作用 pm start xxx.js 启动 xxx.js pm stop xxx.js 停止 xxx.js pm2 list 显示所有进程状 ...
- linq to sql (Group By/Having/Count/Sum/Min/Max/Avg操作符) (转帖)
http://wenku.baidu.com/link?url=2RsCun4Mum1SLbh-LHYZpTmGFMiEukrWAoJGKGpkiHKHeafJcx2y-HVttNMb1BqJpNdw ...
- 温习《PHP 核心技术与最佳实践》这本书
再次看这本书,顺手提炼了一下大致目录,以便后续看见目录就知道大概讲的些什么内容 PHP 核心技术与最佳实践 1.面向对象思想的核心概念 1.1 面向对象的『形』与『本』 1.2 魔术方法的应用 1.2 ...
- 异步Socket服务器与客户端
本文灵感来自Andre Azevedo 在CodeProject上面的一片文章,An Asynchronous Socket Server and Client,讲的是异步的Socket通信. S ...
- Xshell连接不上Ubuntu的解决方法
xshell连接linux主机时,会出现错误:Could not connect to '127.0.0.1' (port 22): Connection failed. 但是这时能ping通. 通 ...
- Zeroc Ice 3.6.1 生成 vs2015 c++ 版本库及相关配置
背景: 目前发布的Ice最新版本为3.6.0,使用的vs2013编译的,vs2015版本正在开发,发布只是时间问题: 不过官方实在给力,github上的源码已经支持vs2015编译了.源码版本为3.6 ...
- 学习笔记之Jira
Jira | Issue & Project Tracking Software | Atlassian https://www.atlassian.com/software/jira The ...
- jstack 查看线程状态
使用jstack pid命令可以查看JVM的线程状态,其中值得关注的线程状态有:死锁,Deadlock(重点关注)执行中,Runnable等待资源,Waiting on condition(重点关注) ...
- git 未能顺利结束 (退出码 1)
Please make sure you have the correct access rightsand the repository exists.