教学课件第08章工具类库与数据结构接口

上传人:沈*** 文档编号:224715191 上传时间:2023-08-01 格式:PPT 页数:46 大小:408.97KB
收藏 版权申诉 举报 下载
教学课件第08章工具类库与数据结构接口_第1页
第1页 / 共46页
教学课件第08章工具类库与数据结构接口_第2页
第2页 / 共46页
教学课件第08章工具类库与数据结构接口_第3页
第3页 / 共46页
资源描述:

《教学课件第08章工具类库与数据结构接口》由会员分享,可在线阅读,更多相关《教学课件第08章工具类库与数据结构接口(46页珍藏版)》请在装配图网上搜索。

1、第第8章章 工具类库与数据结构接口工具类库与数据结构接口1学习内容学习内容lJava的工具类库概述l几种常见的工具类l基本的数据结构接口21 Java的类库的类库lJava的类库是系统提供的已实现的标准类的集合,是Java程序设计的API。lJava类库的结构Java的类库是用“package”实现的;根据功能的不同,将类库划分为不同的包;3Java 2平台中常用的包平台中常用的包包描述java.applet创建applet所需的类java.awt创建用户界面和绘制图形图像的类java.io利用流、系列化和文件进行I/O的类java.langJava语言的最基础的类java.lang.refl

2、ect 提供取得类和对象反射信息的类和接口提供用于实现网络应用的类java.sql提供访问和处理关系数据库等的APIjava.util包含Java的一些实用工具类javax.swing提供一组light-weight元件,所有平台42 Java语言基础类库语言基础类库ljava.lang包,语言基础类库。5Object类类lObject类是Java中所有类的直接或间接基类。lObject类包含2个protected和9个public方法protected Object clone()protected void finalize()public boolean equals(Object ob

3、j)public Class getClass()public int hashCode()public String toString()public void notify()和 public void notifyAll()public void wait()/重载了3个6数据类型类数据类型类数据类型类基本数据类型BooleanbooleanCharactercharDoubledoubleFloatfloatIntegerintLonglong数据类型类有对应的基本数据类型,它的方法主要用来操作和处理所对应的基本数据类型。7Math类类lMath类提供了若干标准数学函数的方法,这些方法

4、都是static方法,可以直接用类名引用。例如:int i=9,j=7,k;k=Math.max(I,j);8System类类lSystem类不能被继承和实例化,其所有的方法都是static的。l用于标准I/O的域public static PrintStream err;public static PrintStream out;public static InputStream in;l常用方法public statuc long currentTimeMillis();public static exit(int status);public static void gc();93 数组

5、数组l数组是常用的线性数据结构,它有以下特点:数组是相同数据类型的元素的集合;数组中各元素按先后顺序连续地存放;每个元素用数组名和它在数组中位置表示。l数组元素类型基本数据类型,如:int,char 等对象引用类型l数组的长度和维数lJava的数组是对象10数组的声明数组的声明l语法形式:数组元素类型 数组名;数组元素类型 数组名;l例如:int intArray;short oneArray;Object oArray;11创建数组空间创建数组空间lJava数组是对象,数组名存放一个引用。使用数组之前必须为数组分配内存空间。Java不支持变长数组,创建时必须指定数组长度。l语法格式:数组名=

6、new 数组元素类型数组长度;l如:intArray=new int10;oArray=new Object5;l可以将数组声明和创建数组对象合并:数组元素类型 数组名=new 数组元素类型数组长度;如:int intArray=new int10;12数组元素的创建和初始化数组元素的创建和初始化l数组元素是基本数据类型时,就不必进行创建和初始化工作。l数组元素是对象引用时,默认初值是null,每个元素的对象通过调用构造函数创建。point pA=new point(1,1),new point(2,3);point pB;pB=new point10;for(int i=0;i10;i+)p

7、Bi=new point(0,0);13数组的使用数组的使用l语法形式:数组名下标l说明:下标从0开始;下标必须是整型的值;下标访问不能越界。14多维数组多维数组l声明:数组元素类型 数组名 ;数组元素类型 数组名;l创建:int iA=new int23;point pA=new point333;int iB;iB=new int2;iB0=new int3;iB1=new int3;l使用:数组名下标1下标215数组的常用操作数组的常用操作l数组长度数组名.length /域l数据复制数组名.clone()方法System.arraycopy()方法16Arrays类类l类的static

8、方法可以方便地对数组进行各种操作,通过重载这些方法可以处理各种类型的数组。lArrays的常用方法:public static void sort(数组名)public static void sort(数组名,下标1,下标2)public static int binarySearch(数组名,key)public static void fill(数组名,value)public static void fill(数组名,下标1,下标2,value)public static boolean equals(数组名1,数组名2)17Array类类l类提供的static方法可以动态创建和访问数

9、组。l创建数组public static Object newInstance(元素类型,数组长度)l访问数组:一组get/set方法,如:public static int getInt(Object array,int index)public static void setInt(Object array,int index,int i)184 字符串字符串l字符串是程序设计中经常用到的一种线性数据结构,它是由字符构成的序列。Java中的字符串是用类实现的。l字符串的类型字符串常量,创建后其值不会改变的字符串。用String类表示。字符串变量,创建后允许再做更改和变化的字符串。用Stri

10、ngBuffer类表示。19字符串常量:字符串常量:String类类l字符串常量用String类的对象表示,一个String类对象创建之后,其长度和内容就不能再改变了。lJava的字符串没有串结束标记,而是有专门的域记录字符串的长度。l对于以“abc”形式出现的字符串常量,系统自动创建一个String对象。20创建字符串常量创建字符串常量String对象对象l常用构造方法public String()public String(String value)public String(StringBuffer buffer)public String(char value)l例如:String s

11、=new String(“Hello”);String s=“Hello”;21字符串常量的操作字符串常量的操作1.求字符串常量的长度 public int length()如:String s1=“Hello!”;String s2=“面向对象程序设计”;System.out.println(s1.length();/输出6 System.out.println(s2.length();/输出8注意:Java使用16位的Unicode编码,所以无论汉字和英文字母组成的串,长度均为字符个数。222.判断字符串的前缀和后缀 public boolean startsWith(String pre

12、fix)public boolean startsWith(String prefix,int offset)public boolean endsWith(String suffix)例如:String s=“Java程序设计”;System.out.println(s.startsWith(“Java”);/true System.out.println(s.endsWith(“设计”);/true233.字符串的查找操作 查找某个字符/子串是否在字符串中出现:public int indexOf(字符/子串)public int indexOf(字符/子串,int fromIndex)p

13、ublic int lastIndexOf(字符/子串)public int lastIndexOf(字符/子串,int fromIndex)返回值为查找到的下标,-1表示查找失败。如:String s=“程序和程序设计语言”;System.out.println(s.indexOf(程);System.out.println(s.lastIndexOf(程);System.out.println(s.indexOf(“程序”);System.out.println(s.lastIndexOf(“程序”);244.字符串抽取操作抽取一个字符public char charAt(int inde

14、x)抽取多个字符public void getChars(int sb,int se,char dst,int db)抽取子串public String substring(int b)public String substring(int b,int e)255.字符串的比较操作判断两个是否相同public boolean equals(Object obj)public boolean equalsIgnoreCase(Object obj)判断两个字符串的大小public int compareTo(String str)public int compareToIgnoreCase(St

15、ring str)266.字符串的替换操作public String replace(char oChar,char nChar)public String replaceFirst(String regex,String r)public String replaceAll(String regex,String r)如:String s=“Hello”;System.out.println(s.replace(l,x);System.out.println(s);277.字符串的其它操作public String trim()public String toUpperCase()publi

16、c String toLowerCase()public String concat(String str)字符串连接运算符:+28字符串变量:字符串变量:StringBuffer类类lStringBuffer类对象表示长度和内容都可以改变的字符串变量。lStringBuffer对象的长度和容量长度:对象中实际容纳的字符个数容量:对象中最多可以容纳的字符个数29StringBuffer类的构造方法类的构造方法l构造方法public StringBuffer()/容量为16public StringBuffer(int length)/参数表示容量public StringBuffer(Stri

17、ng str)/容量为字符数+16l容量的设置public void ensureCapacity(int minCapacity)l长度的设置public void setLength(int newLength)30StringBuffer的方法的方法l字符串的扩充(已重载)public StringBuffer append(对象名)public StringBuffer insert(int offset,对象名)l字符串的删除public StringBuffer deleteAt(int index)public StringBuffer delete(int start,int

18、end)l字符串的替换public void setCharAt(int index,char ch)public StringBuffer replace(int start,int end,String str)315 容器容器(Container)l容器是指可以存放一组数量和生存期均确定的数据结构。lJava 2提供的容器语言内置:数组java.util包:一组容器类32Java 2容器介绍容器介绍lJava 2容器的概念Collection:容纳一组各自独立的元素lList:以特定次序持有其中的元素lSet:不允许有重复的元素Map:一组成对的key-value对象。lJava 2的容

19、器所容纳的实际上是若干个Object类型的引用,由于Object是所有Java类的根,所以容器可以放入任何类型;带了负作用是取出对象时应进行正确的向下转型。33Java 2容器容器34Collection接口接口lboolean add(Object)确保容器将持有“参数的对象”lboolean addAll(Collection)lvoid clear()清除容器内所有元素lboolean contains(Object)判断是否包含参数的对象lboolean containsAll(Collection)lboolean isEmpty()判断容器是否为“空”lIterator itera

20、tor()返回一个可访问该容器的“遍历器”lboolean remove(Object)容器中移除参数的对象lboolean removeAll(Collection)集合减运算lboolean retainAll(Collection)集合交运算lint size()返回容器中元素的个数lObject toArray()返回一个数组,内含容器的所有元素35List容器容器lList接口:是Collection的子接口,它描述的容器的特点是“次序”。扩充了一些方法:Object get(int index)Object set(int index,Object element)int inde

21、xOf(Object o)int lastIndexOf(Object o)36List的主要类别的主要类别lArrayList类以数组实现的List,快速随机访问lLinkedList类链表,最佳顺序访问和中央插入、移除操作提供了一些专用方法:laddFirst(),addLast(),getFirst(),getLast()lremoveFirst(),removeLast()37ArrayList类使用例子类使用例子ArrayList al=new ArrayList();for(int i=0;i=3;i+)al.add(“String-”+i);/加入4个字符串对象al.add(0,

22、“String-N0”);/插入1个对象al.remove(1);/移除1个对象System.out.println(al.get(1);/返回第1个对象System.out.println(al.indexOf(“String-0”);/查找System.out.println(al);/输出38LinkedList类实现栈类实现栈import java.util.*;import java.util.*;public class StackLpublic class StackL private LinkedList list=new LinkedList();private Linked

23、List list=new LinkedList();public boolean isEmpty()public boolean isEmpty()return list.isEmpty();return list.isEmpty();public void push(Object v)public void push(Object v)list.addFirst(v);list.addFirst(v);public Object pop()public Object pop()if(!isEmpty()return list.removeFirst();if(!isEmpty()retur

24、n list.removeFirst();else return null;else return null;39Set 容器容器lSet是Collection的子接口,但是没有扩展任何方法,只是方法的实现不同而已。lSet容器的特点:没有重复的元素值。lSet容器的类型:HashSet:一种以查找时间为主要因素的Set。放入其中的对象必须定义hashCode()方法。TreeSet:底层结构为Tree的有序的Set。40HashSet hs=new HashSet();HashSet hs=new HashSet();TreeSet ts=new TreeSet();TreeSet ts=n

25、ew TreeSet();LinkedList ls=new LinkedList();LinkedList ls=new LinkedList();hs.add(One);ts.add(One);hs.add(One);ts.add(One);ls.add(One);ls.add(One);hs.add(Two);ts.add(Two);hs.add(Two);ts.add(Two);ls.add(Two);ls.add(Two);hs.add(The);ts.add(The);hs.add(The);ts.add(The);ls.add(The);ls.add(The);hs.add(On

26、e);ts.add(One);hs.add(One);ts.add(One);ls.add(One);ls.add(One);System.out.println(HashSet:+hs);System.out.println(HashSet:+hs);System.out.println(TreeSet:+ts);System.out.println(TreeSet:+ts);System.out.println(LinkedList:+ls);System.out.println(LinkedList:+ls);Set容器的例子容器的例子输出结果:输出结果:HashSet:Two,The,

27、OneHashSet:Two,The,OneTreeSet:One,The,TwoTreeSet:One,The,TwoLinkedList:One,Two,The,OneLinkedList:One,Two,The,One41Map接口接口lMap容器的特点维护key-value对的集合Map中不能有重复的key每个key最多与一个value对应lMap接口的常见方法put(Object key,Object value)和get(Object key)containsKey()和containsValue()remove(Object key)size()42实现了实现了Map接口的容器接

28、口的容器lHashMap类基于哈希表完成的Map容器可在常量时间内完成插入/取出元素的操作lTreeMap类以红黑树完成的Map容器确保key-value以key的排序形式出现43Iterators 迭代器迭代器l迭代器是一个对象,其职责是遍历及选择序列中的一连串对象,而不需要知道该序列的底层是如何实现的。lIterator通常的使用方法:调用容器的iterator()方法得到一个迭代器对象第一次调用迭代器的next()方法,返回序列的第一个元素;调用next(),返回下一个元素调用迭代器的hasNext()方法检查序列中是否还有其它元素调用迭代器的remove()方法移去最近传回的元素44迭代器使用例子迭代器使用例子Iterator e;HashSet set=new HashSet();for(int i=0;i9;i+)set.add(Str-+i);e=set.iterator();while(e.hasNext()System.out.println(String)e.next();45Java的其它容器的其它容器lVectorlHashTable46

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!