JAVA工具类与算法.ppt

上传人:牧羊曲112 文档编号:6509778 上传时间:2023-11-07 格式:PPT 页数:35 大小:347.99KB
返回 下载 相关 举报
JAVA工具类与算法.ppt_第1页
第1页 / 共35页
JAVA工具类与算法.ppt_第2页
第2页 / 共35页
JAVA工具类与算法.ppt_第3页
第3页 / 共35页
JAVA工具类与算法.ppt_第4页
第4页 / 共35页
JAVA工具类与算法.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《JAVA工具类与算法.ppt》由会员分享,可在线阅读,更多相关《JAVA工具类与算法.ppt(35页珍藏版)》请在三一办公上搜索。

1、工具类与算法,教材第6章,Java类库 语言基础类 Applet类与Applet小程序 数据结构类 查找与排序,Java类库,Java类库是系统提供的已实现的标准类的集合 Java编程的API(Application Program Interface)它可以帮助开发者方便、快捷地开发Java程序。这些系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合是一个包,合称为类库。Java的类库大部分是由它的发明者SUN公司提供的,这些类库称为基础类库(JFC)。API 应用程序编程接口 面向过程语言 函数库(子程序包)面向对象语言 类库,Java类库结构,java.lang Syste

2、m、Math、Thread、基本数据类型类.java.util 向量、栈、日期java.io(用于输入输出)(用于网络编程)java.applet(编写applet小程序)java.awt(编写图形用户界面),Object类,类层次的根,每一个类都是它的子类。构造方法:Object()一般方法:Object clone()生成当前对象的一个拷贝。boolean equals(Object obj)比较两个对象是否相同。Class getClass()获取当前对象所属的类信息 String toString()用来返回当前对象本身的有关信息,数学运算的Math类,属性public final s

3、tatic double E;/数学常量epublic final static double PI;/圆周率常量方法(均为静态方法)public static int abs(int i);求绝对值 public static double sin(double a);/sin函数 public static double log(double a);/log函数 public static double max(double a,double b);public static double pow(double a,double b);public static double random

4、();/产生01之间随机数,数学运算的Math类,public static double exp(double a);public static int round(float a);public static double sqrt(double a);,Math类例,public class Test public static void main(String args)System.out.println(Math.E);/2.7182818 System.out.println(Math.PI);/3.14159265 System.out.println(Math.sqrt(9.

5、08);/3.0133038 System.out.println(Math.pow(2,3);/8.0 System.out.println(Math.round(99.6);/100 System.out.println(Math.abs(-8.09);/8.09 System.out.println(Math.random();/0.14 System.out.println(Math.random();/0.69,随机数,6-1,System类,实现了用户访问系统资源时的系统无关编程接口属性标准输入输出public static InputStream in public static

6、 PrintStream outpublic static PrintStream err 方法获取系统时间信息public static long currentTimeMillis();获取自1970年1月1日零时至当前系统时刻的微秒数方法强制Java虚拟机退出运行状态,并把状态信息status 返回给运行虚拟机的操作系统public static void exit(int status);例:System.exit(0);,System类,方法取系统属性static String getProperty(String key)例:显示classpathpublic class Test

7、 public static void main(String args)System.out.println(System.getProperty(java.class.path);,向量类-Vector,实现链式存储结构适合于如下的情况需要处理的对象数目不定序列中元素都是对象,而不是基本数据类型的量需要做频繁的元素插入和删除需要定位序列中的对象或其他查找操作,0 1 2 3,创建向量类对象,创建向量类的对象Vector myVector=new Vector();创建空的向量对象(初始容量为10)优化存储管理Vector myVector=new Vector(100);创建空的向量对象(

8、初始容量为100)Vector myVector=new Vector(100,50);创建空的向量对象(初始容量为100,增量为50),向量元素操作,追加元素 add(Object element)插入元素 add(int index,Object element)修改向量中的元素 set(int index,Object element)删除向量中的指定元素 Object remove(int index)(返回被删元素)Boolean remove(Object element)removeRange(int i,int j)(包括i但不包括j),向量元素操作,取出向量中的指定元素 Ob

9、ject get(int index)测试对象在向量中是否存在 boolean contains(Object element)查找指定元素的位置 int indexOf(Object element)int indexOf(Object element,int fromIndex)返回一个包含向量中所有元素的对象数组 Object toArray(),获取向量信息,清空向量(删除所有元素)clear()测试向量是否为空 boolean isEmpty()当前向量元素数量 int size()向量当前容量 int capacity(),向量例,import java.util.*;public

10、 class Test public static void main(String args)Vector v1=new Vector();for(int i=0;i15;i+)v1.add(new String(Integer.toString(i);System.out.println(v1.get(2);/输出:2 System.out.println(v1.contains(3);/输出:true System.out.println(v1.indexOf(4);/输出:4 v1.set(2,new String(wang);System.out.println(v1.get(2);

11、/输出:wang System.out.println(v1.size();/输出:15 System.out.println(v1.capacity();/输出:20 System.out.println(v1.isEmpty();/输出:false v1.clear();System.out.println(v1.isEmpty();/输出:true,6-2,日期类Calendar,抽象类,在Date对象和一组整数域之间进行转换:YEAR,MONTH,DAY,HOUR,Calendar c=Calendar.getInstance();int c.get(Calendar.YEAR)int

12、 c.get(Calendar.MONTH)(1月为0)int c.get(Calendar.DATE)int c.get(Calendar.HOUR)int c.get(Calendar.MINUTE)int c.get(Calendar.SECOND)c.set(Calendar.YEAR,2000)c.set(Calendar.MONTH,10)(11月)c.set(Calendar.DATE,7)c.set(2000,10,7),日期类Calendar例,import java.util.*;class Test public static void main(String args)

13、Calendar c=Calendar.getInstance();System.out.println(c.get(Calendar.YEAR)+年+(c.get(Calendar.MONTH)+1)+月+c.get(Calendar.DATE)+日);System.out.println(c.get(Calendar.HOUR)+时+c.get(Calendar.MINUTE)+分+c.get(Calendar.SECOND)+秒);c.set(2008,7,8);/2008年8月8日 System.out.println(c.get(Calendar.YEAR)+年+(c.get(Cal

14、endar.MONTH)+1)+月+c.get(Calendar.DATE)+日);,6-3,例题-银行帐户,bankAccountm_accNumm_balancem_transRecordgetBalance()saveMoney(.),Transactionm_datem_amountm_typem_remaingetDays()transMeg(),6-4,Applet开发、执行模式,applet 小程序,applet 小程序,applet程序中必须包含类的子类。该子类就是applet小程序的主类。系统类Applet中已经定义了很多的成员域和成员方法,它们规定了Applet小程序如何与

15、执行它的解释器WWW浏览器配合工作。主方法被浏览器自动调用的方法。init()start()stop()destroy()paint(),编写applet小程序就是根据需要重新编写这些方法,applet 小程序,当applet下载时,浏览器首先创建applet实例并调用init()方法进行初始化工作,然后调用start()方法开始applet小程序的执行。当用户离开小程序所在页面时,浏览器调用stop()方法停止小程序执行;当用户重新进入小程序页面时,就再调用start方法。当用户退出浏览器时,浏览器调用destroy()方法并释放资源。每当需要时,浏览器调用paint()方法重画界面。,ap

16、plet,Applet执行入口点由于Browser有不同的消息要通知Applet,所以需要多入口。public class AppletClass extends Appletpublic void init()start().stop()destroy()paint(g)update(g),Applet的生命周期,生命周期称为Applet的主线程一般由Browser或appletviewer自动调用,Applet的下载执行过程,WWW服务器存放HTML,WWW服务器存放.class,WWW浏览器(Browser),解释执行字节码,HTML文件,String getParameter(Stri

17、ng name),Applet方法,Applet的有关方法getParameter(String):返回HTML中设定的值getCodeBase():返回.class所在网址URLgetDocumentBase():返回HTML的URLgetAppInfo():返回作者、版本、版权信息showStatus(String):在浏览器的状态栏输出信息Image getImage(URLurl,Stringname)play(URLurl,Stringname),6-5,6-7,6-6,堆栈Stack,是Vector的子类构造函数 Stack()建立一个新的栈方法boolean empty()测试栈

18、是否空Object peek()查看栈顶元素Object pop()弹栈(出栈)Object push(Object item)压栈(进栈)int search(Object item)查找栈中元素,返回距栈顶位置(栈顶位置为1),堆栈例-表达式计算,#,2,*,(,3,+,5,8,16,-,4,12,操作数栈 s1 操作符栈 s2,堆栈例-表达式计算,栈顶运算符 表达式当前运算符,6-8,排序算法,冒泡排序算法基本思路:把当前数据序列中的各相邻数据两两比较,发现任何一对数据间不符合要求的升序或降序关系则立即调换它们的顺序,从而保证相邻数据间符合升序或降序的关系。选择排序 插入排序 利用系统类

19、实现排序 Arrays类提供了多种操作数组的方法,包括查找和排序 public static void sort(inta)/对整型数组排序public static void sort(floata)/对浮点数数组排序public static void sort(chara)/对字符数组进行排序,排序例,import java.util.Arrays;public class TestSysSort public static void main(String args)int array_int=4,-5,23,7,0,66,37,365,-22,4;/整型数组 Arrays.sort(

20、array_int);/调用Arrays类的整型数组排序方法 for(int i=0;iarray_int.length;i+)System.out.print(array_inti+);System.out.println();char array_char=T,s,i,n,g,h,u,a;/字符数组 Arrays.sort(array_char,2,5);/对字符组排序,只排第24个元素 for(int i=0;iarray_char.length;i+)System.out.print(array_chari+);System.out.println();,排序例,/字符串数组 Stri

21、ng array_str=grape,banana,pear,apple,orange;Arrays.sort(array_str);/调用 sort(Object)方法对字符串数组排序 for(int i=0;iarray_str.length;i+)System.out.print(array_stri+);,查找算法,顺序查找对半查找利用系统类实现查找Arrays类几个查找方法的定义:public static int binarySearch(inta,intkey)public static int binarySearch(floata,floatkey)public static

22、 int binarySearch(Objecta,Objectkey),查找例,import java.util.Arrays;public class TestSysSearch public static void main(String args)int i;int array_int=4,-5,23,7,0,66,37,365,-22,4;Arrays.sort(array_int);/调用Arrays类排序方法排序 i=Arrays.binarySearch(array_int,0);/调用Arrays类查找方法 System.out.println(0是整型数组下标为+i+的元素

23、);String array_str=grape,banana,pear,apple,orange;Arrays.sort(array_str);/调用Arrays类排序方法排序 i=Arrays.binarySearch(array_str,apple);/Arrays类查找方法 System.out.println(apple是字符串数组下标为+i+的元素);,查找例,System.out.println(-下面程序用于测试查找方法返回值的含义-);char array_char=i,j,k,p,q,r,s;/已排序 i=Arrays.binarySearch(array_char,a);System.out.println(查找对象比最小元素还小,方法返回值是:+i);i=Arrays.binarySearch(array_char,j);System.out.println(查找对象找到,j是数组下标为+i+的元素);i=Arrays.binarySearch(array_char,m);System.out.println(查找对象不存在,但位于两个元素之间,方法返回值是:+i);i=Arrays.binarySearch(array_char,x);System.out.println(查找对象比最大元素还大,方法返回值是:+i);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号