已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 常用的工具类,学习导读,Java的API中包含了大量的预定义类,本章将主要介绍Java的实用工具包java.util中的常用的一些数据结构类和工具类。另外,还将在本章中给大家介绍关于Applet小程序的基本知识。,课程结构,6.1 List和ArrayList类 6.2 Set和HashSet类 6.3 Map和HashMap类 6.4 Vector类和Stack类 6.5 泛型 6.6 Applet小程序,Java的集合(Collection)框架,Java的集合框架支持三种类型的集合:线性表List、规则集Set和映射Map。 Set的实例存储一组互不相同的元素 ; List的实例存储一组顺序排列的元素 ; Map的实例存储一组对象,该实例中的每个元素都有一个关联的关键字。 Collection接口是构造集合框架的基础,它是处理对象集合的根接口,声明了所有Collection类都将拥有的核心方法,具体见表6-1。,表6-1 Collection接口声明的方法,6.1 List和ArrayList类,List List接口扩展了Collection接口,定义了一个可以存储重复元素的有序集合。 用户可以通过指定下标访问元素,并可以指定元素在集合中的存储位置。在List类集中,下标从0开始。 List接口除继承了Collection接口声明的方法外,还定义了它自己的一些方法,具体见表6-2。,6.1 List和ArrayList类,表6-2 List接口声明的方法,6.1 List和ArrayList类,ArrayList ArrayList类实现了List接口,它将元素存储在一个动态数组中,存储空间大小可随存储元素的多少进行动态变化。 ArrayList提供了三个构造函数: ArrayList() ArrayList(Collection c) ArrayList(int initialCapacity),6.1 List和ArrayList类,例6.1:创建一个空数组列表,在其中顺序添加A、B、C、D、E、F六个对象,并显示该数组列表的内容和大小。然后在该数组列表中添加和删除元素,并将修改后的数组列表内容输出。程序源代码见ArrayListExample.java ,运行结果如图6-1。,图6-,6.1 List和ArrayList类,LinkedList LinkedList类也实现List接口,它将元素存储在链表中。 LinkedList提供了两个构造函数: LinkedList( ) LinkedList(Collection c),6.1 List和ArrayList类,例6.2 创建一个空链接列表,并在其中依次添加1、2、3、4、5共5个元素,显示该链接列表的内容和大小。然后在该链接列表中添加和删除元素,并将修改后的链接列表内容输出。程序源代码见LinkedListExample.java,程序运行结果见图6-2 。,图6-2,6.2 Set和HashSet类,Set接口扩展了Collection接口,和List接口不同的是,Set定义的集合中不能包含相同的元素。 Set除了继承Collection定义的方法外,本身并没有定义其他的方法。 HashSet类实现了Set接口,由HashSet类声明的集合使用散列表(hash table),它当中存放的元素并没有特殊的顺序。 HashSet提供了四个构造函数: HashSet() HashSet(Collection c) HashSet(int initialCapacity) HashSet(int initialCapacity, float loadFactor),6.2 Set和HashSet类,例6.3 创建一个散列集,并显示该散列集的内容。程序源代码见HashSetExample.java,程序运行结果见图6-3。,图6-3,6.3 Map和HashMap类,Map Map接口用于存储元素和关键字的映射关系,在Map中关键字相当于List中的下标值,用于检索元素的对象。 List的下标定义为整数,而在Map中关键字可以定义为任意类型的对象,但必须是唯一的,不能有重复。每个关键字都对应于一个存放在Map对象中的元素,元素的值是可以重复的。 Map接口定义的方法见表6-3。,6.3 Map和HashMap类,表6-3 Map接口定义的方法,6.3 Map和HashMap类,HashMap HashMap类使用散列表来实现Map接口,该类实现了所有Map接口定义的操作,并且允许空值和空关键字存在于对象中。 由于使用了散列码,因此在HashMap中并不保证元素的存放顺序和它加入该集合的顺序是一致的。 HashMap提供了四个构造函数: HashMap() HashMap(Map m) HashMap(int initialCapacity) HashMap(int initialCapacity, float loadFactor),6.3 Map和HashMap类,例6.4 创建一个HashMap对象,用它来存放学生的姓名和宿舍房间号,并显示该对象的内容。程序源代码见HashMapExample.java,程序运行结果见图6-4。,图6-4,6.4 Vector类和Stack类,Vector Vector和ArrayList类似,也实现List接口,可以用来声明动态数组。与ArrayList不同的是,Vector中包含了同步方法,可以防止两个以上线程同时访问引起的数据冲突。 Vector类定义了四个构造函数: Vector() Vector(Collection c) Vector(int initialCapacity) Vector(int initialCapacity, int capacityIncrement),6.4 Vector类和Stack类,例6.5 一个简单的Vector类使用示例,程序源代码见VectorExample.java,程序运行结果见图6-5。,图6-5,6.4 Vector类和Stack类,Stack Stack类是Vector类的子类,它实现“后进先出”的堆栈。 由于Stack类扩展了Vector类,所以Stack除了包含Vector定义的所有方法外,还增加了几种自定义的方法,见表6-4。,表6-4 Stack类自定义的方法,6.4 Vector类和Stack类,例6.6 使用Stack类将任意输入的字符串逆序输出,程序源代码见StackExample.java,程序运行结果见图6-6 .,图6-6,6.5 泛型(generic type),在例6.4中可以看到如下一段代码: Integer first = (Integer)vector.firstElement(); /访问vector的第一个元素 String last = (String)vector.lastElement(); /访问vector的最后一个元素 为了保证Integer类型和String类型变量赋值的安全性,必须在此进行类型转换。但是,这种类型转换往往很容易带来混乱和错误。为了避免出现类型转换带来的错误情况,当用户已经明确了集合中的数据都为一种类型时,可以使用Java中的泛型来限定集合中的数据为该确定的数据类型。 假设需要定义一个ArrayList类型的对象,而用户希望该对象中所存放的数据都是String类型,则可以使用以下方法来声明这个对象: ArrayList arraylist = new ArrayList();,6.5 泛型(generic type),例6.7 一个简单的泛型使用示例,程序源代码见GenericTypeExample.java,程序运行结果见图6-7。,图6-7,6.6 Applet小程序,Applet是可通过因特网下载并在接收计算机上运行的一小段程序。 所有的Applet都是属于Java中Applet类的子类。Applet类被包含在java.applet类库中。 Applet并不是在控制台环境的窗口中执行,而是由浏览器或Applet阅读器(appletviewer)执行。,6.6 Applet小程序,Applet的常用方法 在定义Applet时,可以将它的总体结构表示为: import java.applet.*; import java.awt.*; public class NewApplet extends Applet public NewApplet() public void init() public void start() public void stop() public void destory() public void paint (Graphics g) ,6.6 Applet小程序,Applet的常用方法 init():浏览器首次加载Applet、准备运行时将调用init()方法。 start() :start()方法在init()方法完成后调用。 paint():在Applet开始执行或每次Applet的输出必须重画窗口时(如Applet窗口被缩小再复原时等情况),paint()方法都被调用。 stop():用户离开Applet所在的web页面,将Applet挂起时将调用stop()方法。 在Applet生命周期结束(用户退出浏览器)、Applet结束之前被调用。,6.6 Applet小程序,标记 在HTML文档中使用标记可以将Applet嵌入Web页面。 标记的描述格式如下: ,6.6 Applet小程序,例6.8 在浏览器中调用Applet显示按钮,点击该按钮将在Applet中显示“Its a simple applet!”。程序源代码见SimpleApplet.java。将编译生成的SimpleApplet.class嵌套在网页SimpleApplet.html中,运行结果如图6-8,6-9所示,图6-8,图6-9,6.6 Applet小程序,Applet的参数传递 要将参数传递给Applet,必须在HTML中使用标记声明和设定参数内容,该标记应嵌入标记中,在Applet初始化时程序可以读取标记声明的内容。 标记的描述语法如下: 其中“参数值”是一个字符串值。 要将标记设定的参数信息读取并传递给Applet程序,需要使用Applet类中的getParameter()方法: public String getParameter (String name); 该方法以字符串方式返回标记声明的参数名为name的参数值。,6.6 Applet小程序,例6.9 在Applet窗口中显示字符串“An example of Java Applet”,字符串的字体、颜色、大小和显示的位置均由HTML文件进行设定。Applet程序见Ap
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024招标合同委托书格式
- 2024污水处理特许经营权转让合同
- 2024房地产抵押反担保合同范本
- 2024大型购物中心建设改造合同
- 2024年度智能家居产品设计与生产合同
- 2024专项资金借款合同书
- 2024技术机密保密协议书模板
- 企业股份制转型发起人合作协议
- 业务经理聘请协议书范本
- 2024委托代理合同样书
- 固定资产情况表
- 水利工程管理单位定岗标准(试点)
- 《建筑施工技术》课后习题答案(大学期末复习资料)
- 公司环境行政处罚事件处置预案
- 广东开放大学风险投资(本2022春)-练习4答案
- DB65∕T 3253-2020 建筑消防设施质量检测评定规程
- 二年级苏教版数学上册《7的乘法口诀》教案(公开课三稿)
- (完整PPT)半导体物理与器件物理课件
- ASTM B366 B366M-20 工厂制造的变形镍和镍合金配件标准规范
- JIS G4304-2021 热轧不锈钢板材、薄板材和带材
- 2022年中级经济师-人力资源管理专业押题模拟试卷3套及答案解析
评论
0/150
提交评论