基础类库和工具类库.ppt
《基础类库和工具类库.ppt》由会员分享,可在线阅读,更多相关《基础类库和工具类库.ppt(84页珍藏版)》请在三一办公上搜索。
1、第6章 基础类库和工具类库,6.1 Java基础类6.2 字符串相关类6.3 集合6.4 泛型6.5 日期和时间6.6 使用java.text包格式化数字和日期,6.1 Java基础类1.基础类库,Java运行环境(Java Runtime Environment,JRE)为一般的应用开发提供了大量类库支持,其提供的基础类库被称为JFC。这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称类库。java.langJava语言的核心类库,包含了一般Java语言必不可少的一些系统类定义。java.io标准输入和输出类库,通过数据流、序列化和文件系统提供系统输入和输出。
2、java.util提供一些常用的工具类。,java.awt构建图形用户界面的类库。提供处理由AWT组件所激发的各类事件的接口和类。java.applet用来实现运行于浏览器中的Java Applet的工具类库。与网络编程相关的类库。java.sql用来实现JDBC(Java Data Connection)的类库,利用它可以使Java程序具有访问不同类的数据库的功能。,java.security提供了用于安全框架的类和接口。实现了一个容易配置的、精细访问控制的安全结构。另外,还支持加密公钥对的生成和存储以及消息摘要(message digest)和数字签名的生成等加密操作。java.text通
3、过与特定语言无关的方式格式化文本消息、日期和数值。java.math提供用于执行任意精度整数算法(BigInteger)和任意精度小数算法(BigDecimal)的类。,2.Object,Object类是类层次的根。所有类都直接或间接地继承了Object类,所以一个Object类型的变量可以引用任何对象,不论是类实例还是数组。Object类定义了11个可供所有对象继承的方法。这些方法分为两类:通用工具方法和支持线程的方法。,public boolean equals(Object obj)public int hashCode()protected Object clone()throws C
4、loneNotSupportedExceptionpublic final Class getClass()protected void finalize()throws Throwablepublic String toString()public final void wait(long timeout)throws InterruptedExceptionpublic final void wait(long timeout,int nanos)throws InterruptedExceptionpublic final void wait()throws InterruptedExc
5、eptionpublic final void notify()public final void notifyAll(),Object类中equals方法的性质,反身性(Reflexive)对于任何引用x,x.equals(x)将返回true。对称性(Symmetric)对于引用x和y,当且仅当y.equals(x)返回true时,x.equals(y)才会返回true。传递性(Transitive)对于引用x、y和z,如果x.equals(y)返回true,y.equals(z)也返回true,那么x.equals(z)也将返回true。一致性(Consistent)对于引用x和y,只要对
6、象比较时所有的信息并没有做任何的改动,那么多次调用x.equals(y)要么都返回true,要么都返回false。对于任何非空引用(non-null reference)x,x.equals(null)将返回false。,Object类中的toString方法,Object类中toString()只提供了该对象的类名、一个字符和实例散列码的十六进制表示,通常这些信息对于用户是远远不够的。可以通过覆盖toString方法,在其中提供一些更加友好的信息。,3.基本数据类型的封装,Java中定义了多种基本数据类型,但为了与面向对象程序设计思想相符合,Java基本类库中同时提供了对这些基本类型的封装类
7、。,这些类一般有如下特点:类中定义了对应基本数据类型的一些常数;提供基本数据类型和字符串的相互转换方法;对象中封装的值是不可改变的,改变对象值的惟一方法是创建一个新的对象;作为典型的值类实现,对equals()、hashCode()和toString()方法都做了改写。,public class test public static void main(String args)Integer a=new Integer(12);Integer b=new Integer(12);System.out.println(a.equals(b);,4.System,类是个很特殊的类,该类不能被实例化
8、,是个非常典型的静态方法类,主要提供与系统相关的静态方法和一些静态对象,如标准输入输出。,5.Math,类用来完成一些常用的数学计算,提供了一些实现标准数学函数计算的静态方法,使用时无需创建实例。,6.2 字符串相关类1.String,字符串是Java中比较特殊的数据类型。Java语言将字符串作为对象来处理,有对应的类定义,每一个字符串常量是字符串类String的一个实例。String类中提供了很多非常方便的字符串操作和查询方法,2.StringBuffer,StringBuffer类封装了一个字符数组,同时提供了对这个字符数组的相关操作。与String相比,任何修改性的操作都是在同一个字符数
9、组上进行,而不像String那样为了线程访问安全创建大量副本对象。,3.StringTokenizer,提供了对字符串的解析和分割的功能,如对一个字符串需要按照某些特征子串进行分割,就可以使用这个类。StringTokenizer位于java.util包中。,构造方法:,public StringTokenizer(String str)为指定字符串构造一个 string tokenizer。tokenizer 使用默认的分隔符集合 tnrf,即:空白字符、制表符、换行符、回车符和换页符。分隔符字符本身不作为标记。public StringTokenizer(String str,String
10、 delim)为指定字符串构造一个 string tokenizer。delim 参数中的字符都是分隔标记的分隔符。分隔符字符本身不作为标记。public StringTokenizer(String str,String delim,boolean returnDelims)为指定字符串构造一个 string tokenizer。delim 参数中的所有字符都是分隔标记的分隔符。如果 returnDelims 标志为 true,则分隔符字符也作为标记返回。每个分隔符都作为一个长度为 1 的字符串返回。如果标志为 false,则跳过分隔符,只是用作标记之间的分隔符。,package mycla
11、ss;import java.util.StringTokenizer;public class test public static void main(String args)StringTokenizer st=new StringTokenizer(this is an apple);while(st.hasMoreTokens()System.out.println(st.nextToken();,StringTokenizer是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用String的split方法或包。,public String
12、split(String regex)根据给定的正则表达式(RegularExpression)的匹配来拆分此字符串。String result=this is an apple.split(s);/s-空白字符 for(int x=0;xresult.length;x+)System.out.println(resultx);,6.3 集合1.集合API,集合是一系列对象的聚集,是代表一组对象的一个对象,集合中的这一组对象称为集合的元素。集合中的每一个元素都具有一定的数据类型,任何数据类型的对象都可以存放在集合中。集合是Java程序设计中非常重要的数据结构形式,Java基本类库中提供了非常优
13、秀的集合相关类定义实现,一般称为集合API。集合API中的接口和类主要分布在Java.util包下,最基本的接口是Collection,定义了聚集形式数据的基本操作方法。,Java的集合框架能使Java程序处理对象集的方式变得标准化。集合框架有以下几个设计目标:高性能。基本集合(动态数组、链表、树和散列表)的实现具有很高的效率。允许不同类型的集合用相同的方式进行处理且具有很高的互用性。扩展和修改集合很容易。为了实现这一目标,整个集合框架被设计成一系列标准接口,并且实用工具包中提供了这些接口的几个标准实现,如LinkedList、HashSet和TreeSet。,集合框架所产生的另一个东西是It
14、erator(迭代器)接口。Iterator接口提供了访问集合元素的一种标准访问方式:逐个访问方式,或者说,Iterator接口提供了列举集合内容的一种标准访问方式。由于每个集合均实现Iterator接口,所以任何集合类成员均可通过Iterator类的方法来访问。除了集合之外,集合框架还定义了几个映射接口与类。映射接口与类用来存储键值对。从严格的意义上来说,映射不是集合,但它们被完全集成到了集合中,可以像处理集合一样来处理映射的内容。,集合接口,List实现的对象集合记录元素的保存顺序,允许有重复元素的存在;而Set中不记录元素的保存顺序,不允许元素重复存在。,2.接口 Collection接
15、口,Collection接口是构造集合框架的基础,并声明了各种集合所共有的核心方法。由于所有集合都必须实现Collection接口,所以熟悉该接口所定义的方法对弄清楚集合框架是至关重要的。,List接口,List接口扩展了Collection接口,并把集合的行为声明成存储一个元素序列。使用从0开始的索引,可以把一个元素插入到列表中或访问列表中的某个元素。同一个列表可以包含相同的元素。除了Collection接口所定义的方法之外,List接口还定义了属于它自己的一些方法。,Set接口,Set接口扩展Collection接口并定义这样一种集合:这种集合不允许含有相同的元素。Set接口没有定义它自己
16、的方法。,SortedSet接口,SortedSet接口扩展Set接口并定义一种升序集合。除了Set接口所定义的方法之外,SortedSet接口还定义了一些自己的方法。,3.集合类,实用工具包中的集合类,ArrayList类,支持按需增长的动态数组。构造方法:ArrayList()/创建空数组列表ArrayList(Collection c)/以集合c中的元素作为初始元素创建数组列表ArrayList(int capacity)/创建一个具有指定初始容量的数组列表,import java.util.*;class Test public static void main(String args
17、)ArrayList alist=new ArrayList();alist.add(a);alist.add(b);alist.add(c);alist.add(d);alist.add(1,ok);System.out.println(alist);alist.remove(c);alist.remove(3);System.out.println(alist);,输出:a,ok,b,c,da,ok,b,注意:D:temptestsrcmyclasstest.java 使用了未经检查或不安全的操作。注意:要了解详细信息,请使用-Xlint:unchecked 重新编译。,HashSet类,
18、HashSet类创建一个用散列表存储元素的集合,不保证元素的顺序。例:P130,LinkedHashSet类,用元素的插入顺序来维持集合的链表,并允许按元素的插入顺序遍历集合。,TreeSet类,用树结构来存储数据,集合中的对象按“升序”*存储,访问和遍历集合的速度很快,是存储大量数据并快速查找的上佳选择。TreeSet()/按照元素的自然顺序排序。插入该 set 的所有元素都必须实现 Comparable 接口TreeSet(Collection c)/构造一个用c集合的元素为初始元素的树集合TreeSet(Comparator comp)/构造一个按comp比较器排序的空树集合TreeSe
19、t(SortedSet sset)/构造一个用sset集合作为初始元素的树集合*根据使用的构造方法不同,可能会按照元素的自然顺序 进行排序(参见 Comparable),或按照在创建 set 时所提供的比较器进行排序。,import java.util.*;class StrComparator implements Comparator/P136 public int compare(Object o1,Object o2)String a=(String)o1;String b=(String)o2;int c=pareTo(b);if(c0)return-1;else if(c0)ret
20、urn 1;else return 0;,public class Test public static void main(String args)TreeSet aset=new TreeSet();aset.add(d);aset.add(b);aset.add(a);aset.add(c);for(Object ob:aset)System.out.print(String)ob+t);System.out.println();TreeSet bset=new TreeSet(new StrComparator();bset.addAll(aset);bset.add(e);for(O
21、bject ob:bset)System.out.print(String)ob+t);,输出:a b c d e d c b a,java.lang public interface Comparable,此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序,类的 compareTo 方法被称为它的自然比较方法。实现此接口的对象列表(和数组)可以通过 Collections.sort()(和 Arrays.sort())进行自动排序。实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器。,import java.util.*;class Studen
22、t implements Comparableint id;String name;public Student(int id,String name)this.id=id;this.name=name;public int compareTo(Object s)Student ss=(Student)s;return id-ss.id;,public class Test public static void main(String args)TreeSet aset=new TreeSet();aset.add(new Student(3,c);aset.add(new Student(2
23、,b);aset.add(new Student(1,a);aset.add(new Student(4,d);for(Object ob:aset)Student s=(Student)ob;System.out.println(s.id+t+s.name);,1 a2 b3 c4 d,使用迭代器访问集合元素,遍历集合中的元素是一个常见的操作,比如显示集合中的每个元素。要想遍历集合中的元素,可使用迭代器。迭代器是指实现了Iterator或ListIterator接口的一个对象。迭代器允许通过循环集合来获取或删除集合元素。ListIterator通过扩展Iterator来允许双向遍历和修改集合
24、元素。,Iterator接口中的方法,ListIterator接口中的方法,要想用迭代器访问集合,必须先获得迭代器。每个集合类均提供了一个返回迭代器的iterator()方法,而且返回的迭代器均指向当前集合的开头。通常情况下,使用迭代器遍历集合应该遵循以下步骤:调用集合的iterator()方法获取一个指向集合开头的迭代器。设置一个循环来调用hasNext()方法,其中只要hasNext()方法返回true,循环就继续进行。在循环体中,调用next()方法来获得每个元素。对于实现了List接口的集合,还可以通过调用ListIterator()来获得迭代器。,package myclass;im
25、port java.util.*;class Test public static void main(String args)ArrayList alist=new ArrayList();alist.add(a);alist.add(b);alist.add(c);alist.add(d);Iterator itr01=alist.iterator();while(itr01.hasNext()Object element=itr01.next();System.out.print(element+);,ListIterator itr02=alist.listIterator();whi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基础 工具
链接地址:https://www.31ppt.com/p-5952628.html