版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章Java中的常见类库0102039.1Java类库的结构9.2异常处理9.3思考和练习Java类库中常用的类和接口如下:java.io:系统输入和输出。java.utl:日期、时间、国际化等各种实用工具类。java.swing.*:一组轻量级组件。java.sql:数据源数据的API。:网络通信应用类。java.math:数学运算类。java.lang:程序设计基础类。java.awt:用户界面和图形图像类。java.applet:Java里嵌入的HTML文档中的、可以在浏览器运行的小程序。9.1Java类库的结构39.2.1System类System类是一个特殊类,他是一个公共最终类,不能被继承,也不能被实例化,也就是说不能使用System类定义对象。System类中所有的变量和方法都是静态的,使用时以System.变量名和System.方法名的方式调用。前面章节中使用了许多System.out.print()和System.out.println()语句,实际上这里就是使用System类的方法。9.2常用类System类包含3个经常使用的公共数据流,分别是标准输入(in)、标准输出(out)和标准错误(err)。in属性是InputStream类的一个对象,它是未经包装的原始类InputStream,可以通过System.in.read()方法读取字节数据实现标准输入,例如:chari=(char)System.in.read();out和err都是被包装成InputStream对象,所以可以直接使用System.out和System.err方法调用。例如,可以使用下面的方法完成各种数据类型的输出:System.out.print("num="+num+"\n");或者:System.out.println("num="+num);9.2常用类9.2.2Math类Math类提供了很多数学运算,包括几何、三角以及常用的数学函数。前面章节中使用了许多System.out.print()和System.out.println()语句,实际上这里就是使用System类的方法。9.2常用类例如,下面是输入两个数值,分别计算其正弦值和余弦值:packagetest;importjava.util.Scanner;publicclassclass1{ publicstaticvoidmain(Stringargs[]){System.out.println("请输入两个数,输入后回车,计算及其正弦和余弦值:"); Scannerreader=newScanner(System.in);doublex=reader.nextDouble();doubley=reader.nextDouble();System.out.println("你输入的第一个值是"+x);System.out.println("你输入的第二个值是"+y);doublesinx=Math.sin(x);doublecosx=Math.cos(x);doublesiny=Math.sin(y);doublecosy=Math.cos(y);System.out.println(x+"的正弦值是"+sinx);System.out.println(x+"的余弦值是"+cosx);System.out.println(y+"的正弦值是"+siny);System.out.println(y+"的余弦值是"+cosy);} }9.2常用类程序运行结果如下:请输入两个数,输入后回车,计算及其正弦和余弦值:3.05.0你输入的第一个值是3.0你输入的第二个值是5.03.0的正弦值是0.14112000805986723.0的余弦值是-0.98999249660044545.0的正弦值是-0.95892427466313855.0的余弦值是0.283662185463226259.2常用类9.2.3Random类Random类主要创建新的随机生成器。例如,生成10个1-100之间的随机数:packagetest;importjava.util.Random;publicclassclass1{ publicstaticvoidmain(Stringargs[]){Randomrand=newRandom();for(inti=1;i<=10;i++){intr0=rand.nextInt(100);System.out.println("第"+i+"个随机数是:"+r0);}} }9.2常用类9程序运行结果如下:第1个随机数是:62第2个随机数是:81第3个随机数是:39第4个随机数是:75第5个随机数是:28第6个随机数是:43第7个随机数是:88第8个随机数是:90第9个随机数是:13第10个随机数是:619.2常用类9.2.4基本数据类型的包装9.2常用类9.2.5Vector类向量类Vector是一个动态数组类。包含在Java.util中。可以动态创建数组。下面程序示例演示Vector的使用。包括Vector的创建、向Vector中添加元素、从Vector中删除元素、统计Vector中元素的个数和遍历Vector中的元素。9.2常用类12importjava.util.Vector;publicclassc1{publicstaticvoidmain(String[]args){//Vector的创建//使用Vector的构造方法进行创建Vectorv=newVector(4);//向Vector中添加元素//使用add方法直接添加元素v.add("Data01"); v.add("Data02"); v.add("Data03"); v.add("Data04"); v.add("Data05");//从Vector中删除元素v.remove("Data01");//删除指定内容的元素v.remove(1);//按照索引号删除元素//获得Vector中已有元素的个数intsize=v.size();System.out.println("size:"+size);//遍历Vector中的元素for(inti=0;i<v.size();i++){System.out.println(v.get(i));}}}9.2常用类程序运行结果:size:3Data02Data04Data059.2常用类Vector有三个构造函数:publicVector(intinitialCapacity,intcapacityIncrement)
publicVector(intinitialCapacity)
publicVector()
9.2常用类针对经常用到的对向量增、删、插功能举例描述:
addElement(Objectobj)//把组件加到向量尾部,同时大小加1,
向量容量比以前大1。insertElementAt(Objectobj,intindex)//把组件加到所定索引处,
此后的内容向后移动1个单位。setElementAt(Objectobj,intindex)//把组件加到所定索引处,
此处的内容被代替。removeElement(Objectobj)//把向量中含有本组件内容移走。removeAllElements()//把向量中所有组件移走,向量大小为0。9.2常用类16importjava.util.Vector;publicclassc1{publicstaticvoidmain(String[]args){Vectorv=newVector();v.addElement("10");v.addElement("20");v.addElement("30");v.addElement("40");v.addElement("50");//遍历Vector中的元素for(inti=0;i<v.size();i++){System.out.println(v.get(i));}System.out.println("-----");v.insertElementAt("5",0);v.insertElementAt("25",3);v.setElementAt("100",4);for(inti=0;i<v.size();i++){ System.out.println(v.get(i));}System.out.println("-----");v.removeAllElements();for(inti=0;i<v.size();i++){ System.out.println(v.get(i));}}}9.2常用类程序运行结果:1020304050-----51020251004050-----9.2常用类9.2.6Stack类Stack类是栈数据结构类。栈的基本特征是先进后出(FILO—First-In/Last-Out)。Stack栈是Vector的一个子类,它实现了一个标准的后进先出的栈。9.2常用类19importjava.util.EmptyStackException;importjava.util.Stack;publicclassc1{publicstaticvoidmain(String[]args){Stack<Integer>st=newStack<Integer>();System.out.println("堆栈:"+st);showpush(st,11);showpush(st,22);showpush(st,33);showpush(st,44);showpop(st);showpop(st);showpop(st);try{showpop(st);}catch(EmptyStackExceptione){System.out.println("空栈");}}staticvoidshowpush(Stack<Integer>st,inta){st.push(newInteger(a));System.out.println("push("+a+")");System.out.println("堆栈:"+st);}staticvoidshowpop(Stack<Integer>st){System.out.print("pop->");Integera=(Integer)st.pop();System.out.println(a);System.out.println("stack:"+st);}}9.2常用类程序运行结果:堆栈:[]push(11)堆栈:[11]push(22)堆栈:[11,22]push(33)堆栈:[11,22,33]push(44)堆栈:[11,22,33,44]pop->44堆栈:[11,22,33]pop->33堆栈:[11,22]pop->22堆栈:[11]pop->11堆栈:[]9.2常用类9.2.7Queue类Queue类是队列数据结构类。队列的基本特征是先进先出(FIFO—Firstin/Firstout),Queue类中的方法完成队列的相关操作。Queue接口与List、Set同一级别,都是继承了Collection接口。LinkedList实现了Deque接口。add
增加一个元索,如果队列已满,则抛出一个IIIegaISlabEepeplian异常。
remove
移除并返回队列头部的元素,如果队列为空,
则抛出一个NoSuchElementException异常。
element
返回队列头部的元素,如果队列为空,
则抛出一个NoSuchElementException异常。
offer
添加一个元素并返回true
,如果队列已满,则返回false。
poll
移除并返回队列头部的元素,如果队列为空,则返回null。
peek
返回队列头部的元素,如果队列为空,则返回null。
put
添加一个元素,
如果队列满,则阻塞。
take
移除并返回队列头部的元素,如果队列为空,则阻塞。9.2常用类22importjava.util.concurrent.ArrayBlockingQueue;importjava.util.concurrent.BlockingQueue;importjava.util.concurrent.ExecutorService;importjava.util.concurrent.Executors;publicclassc1{publicstaticvoidmain(String[]args){c1.testBasket();} /***定义装苹果的篮子*/publicstaticclassBasket{//篮子,能够容纳3个苹果BlockingQueue<String>basket=newArrayBlockingQueue<String>(3);//生产苹果,放入篮子publicvoidproduce()throwsInterruptedException{//put方法放入一个苹果,若basket满了,等到basket有位置basket.put("Anapple");}//消费苹果,从篮子中取走publicStringconsume()throwsInterruptedException{//get方法取出一个苹果,若basket为空,等到basket有苹果为止Stringapple=basket.take();returnapple;}publicintgetAppleNumber(){returnbasket.size();}}9.2常用类//测试方法publicstaticvoidtestBasket(){//建立一个装苹果的篮子finalBasketbasket=newBasket();//定义苹果生产者classProducerimplementsRunnable{publicvoidrun(){try{while(true){//生产苹果System.out.println("生产者准备生产苹果:"+System.currentTimeMillis());duce();System.out.println("生产者生产苹果完毕:"+System.currentTimeMillis());System.out.println("生产完后有苹果:"+basket.getAppleNumber()+"个");//休眠300msThread.sleep(300);}}catch(InterruptedExceptionex){}}}9.2常用类//定义苹果消费者classConsumerimplementsRunnable{publicvoidrun(){try{while(true){//消费苹果System.out.println("消费者准备消费苹果:"+System.currentTimeMillis());basket.consume();System.out.println("消费者消费苹果完毕:"+System.currentTimeMillis());System.out.println("消费完后有苹果:"+basket.getAppleNumber()+"个");//休眠1000msThread.sleep(1000);}}catch(InterruptedExceptionex){}}}ExecutorServiceservice=Executors.newCachedThreadPool();Producerproducer=newProducer();Consumerconsumer=newConsumer();service.submit(producer);service.submit(consumer);//程序运行10s后,所有任务停止try{Thread.sleep(10000);}catch(InterruptedExceptione){}service.shutdownNow();}}9.2常用类程序运行结果:生产者准备生产苹果:1561094841253消费者准备消费苹果:1561094841253生产者生产苹果完毕:1561094841253消费者消费苹果完毕:1561094841253生产完后有苹果:0个消费完后有苹果:0个生产者准备生产苹果:1561094841554生产者生产苹果完毕:1561094841554生产完后有苹果:1个生产者准备生产苹果:1561094841854生产者生产苹果完毕:1561094841854生产完后有苹果:2个生产者准备生产苹果:1561094842154生产者生产苹果完毕:15610948421549.2常用类生产完后有苹果:3个消费者准备消费苹果:1561094842254消费者消费苹果完毕:1561094842254消费完后有苹果:2个生产者准备生产苹果:1561094842454生产者生产苹果完毕:1561094842454生产完后有苹果:3个生产者准备生产苹果:1561094842755消费者准备消费苹果:1561094843254消费者消费苹果完毕:1561094843254消费完后有苹果:3个生产者生产苹果完毕:1561094843254生产完后有苹果:3个生产者准备生产苹果:1561094843555消费者准备消费苹果:1561094844254消费者消费苹果完毕:1561094844254生产者生产苹果完毕:1561094844254消费完后有苹果:3个生产完后有苹果:3个9.2常用类消费者准备消费苹果:1561094845254消费者消费苹果完毕:1561094845254生产者生产苹果完毕:1561094845254消费完后有苹果:3个生产完后有苹果:3个生产者准备生产苹果:1561094845554消费者准备消费苹果:1561094846254消费者消费苹果完毕:1561094846254生产者生产苹果完毕:1561094846254消费完后有苹果:3个生产完后有苹果:3个生产者准备生产苹果:1561094846555消费者准备消费苹果:1561094847254消费者消费苹果完毕:1561094847254生产者生产苹果完毕:1561094847254生产完后有苹果:3个消费完后有苹果:3个生产者准备生产苹果:1561094847554消费者准备消费苹果:1561094848254消费者消费苹果完毕:1561094848254生产者生产苹果完毕:1561094848254消费完后有苹果:3个生产完后有苹果:3个9.2常用类生产者准备生产苹果:1561094848554消费者准备消费苹果:1561094849254消费者消费苹果完毕:1561094849254消费完后有苹果:2个生产者生产苹果完毕:1561094849254生产完后有苹果:3个生产者准备生产苹果:1561094849554消费者准备消费苹果:1561094850254消费者消费苹果完毕:1561094850254生产者生产苹果完毕:1561094850254消费完后有苹果:3个生产完后有苹果:3个生产者准备生产苹果:15610948505559.2常用类9.2.8Arrays类Arrays类是针对数组进行操作的工具类,提供了排序,查找等功能。它是Object的子类。Arrays类成员方法有:publicstaticStringtoString(int[]a):把数组转成字符串。int[]a可以改为其他类型的数组。publicstaticvoidsort(int[]a):将各种类型的数组进行升序排序。publicstaticintbinarySearch(int[]a,intkey):将各种类型的
数组进行二分查找。9.2常用类30importjava.util.Arrays;publicclassc1{publicstaticvoidmain(String[]args){//定义一个数组int[]arr={60,-35,-61,126,0,77,-31,254,-20};//publicstaticStringtoString(int[]a)把数组转成字符串System.out.println("排序前:"+Arrays.toString(arr));//publicstaticvoidsort(int[]a)对数组进行排序Arrays.sort(arr);System.out.println("排序后:"+Arrays.toString(arr));int[]arr2={13,24,57,69,80};//publicstaticintbinarySearch(int[]a,intkey)二分查找//binarySearch:2System.out.println("binarySearch:"+Arrays.binarySearch(arr2,57));//binarySearch:-6return-(low+1)System.out.println("binarySearch:"+Arrays.binarySearch(arr2,557));}}9.2常用类程序运行结果:排序前:[60,-35,-61,126,0,77,-31,254,-20]排序后:[-61,-35,-31,-20,0,60,77,126,254]binarySearch:2binarySearch:-69.2常用类9.2.9Hashable类Hashable类是哈希表类。其功能就是利用哈希表存储数据。哈希表(Hashtable,也叫散列表),是根据关键码值(Keyvalue)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做哈希函数,存放记录的数组叫做哈希表。9.2常用类33Hashtable定义了四个构造方法:(1)Hashtable()默认构造方法(2)Hashtable(intsize)创建指定大小的哈希表(3)Hashtable(intsize,floatfillRatio)创建了一个指定大小的哈希表,并且通过fillRatio指定填充比例。填充比例必须介于0.0和1.0之间,它决定了哈希表在重新调整大小之前的充满程度:(4)Hashtable(Mapm)创建了一个以M中元素为初始化元素的哈希表。哈希表的容量被设置为M的两倍。9.2常用类9.2常用类Hashtable中除了从Map接口中定义的方法外,还定义了以下方法:(1)voidclear()
将此哈希表清空,使其不包含任何键。(2)Objectclone()创建此哈希表的浅表副本。(3)booleancontains(Objectvalue)
测试此映射表中是否存在与指定值关联的键。(4)booleancontainsKey(Objectkey)测试指定对象是否为此哈希表中的键。(5)booleancontainsValue(Objectvalue)如果此Hashtable将一个或多个键映射到此值,则返回true。(6)Enumerationelements()返回此哈希表中的值的枚举。(7)Objectget(Objectkey)返回指定键所映射到的值,如果此映射不包含此键的映射,则返回
null.更确切地讲,如果此映射包含满足
(key.equals(k))
的从键
k
到值
v
的映射,则此方法返回
v;否则,返回
null。9.2常用类(8)booleanisEmpty()测试此哈希表是否没有键映射到值。(9)Enumerationkeys()
返回此哈希表中的键的枚举。(10)Objectput(Objectkey,Objectvalue)将指定
key
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第四单元学情评估(含答案)2024-2025学年统编版七年级语文下册
- 《认清国情》课件
- 子宫角妊娠的健康宣教
- 头皮毛囊炎的临床护理
- 《教你门窗工程预算》课件
- 《机械设计基础》课件-第6章
- 粉刺的临床护理
- 痱子的临床护理
- JJF(陕) 092-2022 医用电动颈腰椎牵引治疗仪校准规范
- JJF(陕) 046-2020 真空干燥箱校准规范
- 白油检测报告
- 心肌梗死患者的护理健康评估培训
- 体育教研组老师工作总结
- 网络预约出租汽车企业安全隐患排查
- 江苏省南京市秦淮区2023-2024学年上学期期末检测九年级数学试卷
- 2024北京海淀区初三(上)期末英语试卷和答案
- 北师大版2023-2024学年九年级上册数学期末综合练习
- 《防火防爆》课件
- 《地籍调查项目》课件
- 手持电动工具安全专项培训
- 冷库装修合同
评论
0/150
提交评论