您好,欢迎访问三七文档
第6章常用工具类和Applet小程序Java的API中包含了大量的预定义类,我们将主要介绍Java的实用工具包java.util中的常用的一些数据结构类和工具类。另外,我们还将在本章中给大家介绍关于Applet小程序的基本知识。Java中引入了可以集中有效地组织和处理数据的接口和类,这些接口和类组成了Java的集合(Collection)框架。Java的集合框架支持三种类型的集合:线性表List、规则集Set和映射Map。Set的实例存储一组互不相同的元素,List的实例存储一组顺序排列的元素,Map的实例存储一组对象,该实例中的每个元素都有一个关联的关键字。Collection接口是构造集合框架的基础,它是处理对象集合的根接口,声明了所有Collection类都将拥有的核心方法,具体见表6-1。表6-1Collection接口声明的方法方法功能描述booleanadd(Objectobj)为当前调用的集合添加元素objbooleanaddAll(Collectionc)将c中的所有元素加入调用的集合中voidclear()删除当前集合的所有元素booleancontains(Objecto)若当前集合包含元素o则返回true,否则返回falsebooleancontainsAll(Collectionc)若当前集合包含集合c的所有元素则返回truebooleanequals(Objecto)若当前集合与o相等则返回true,否则返回falseinthashCode()返回当前集合的散列码booleanisEmpty()若当前集合不包含任何元素则返回trueIteratoriterator()返回当前集合元素的迭代探子booleanremove(Objecto)删除当前集合中的元素obooleanremoveAll(Collectionc)删除集合c中的所有元素booleanretainAll(Collectionc)删除当前集合中与集合c共有的元素,若当前集合发生变化则返回true,否则返回falseintsize()返回当前集合元素的个数Object[]toArray()返回当前集合所有元素构成的数组Object[]toArray(Objectarray[])返回当前集合中指定数组元素类型相匹配的元素构成的数组6.1List和ArrayList类6.1.1ListList接口扩展了Collection接口,定义了一个可以存储重复元素的有序集合。用户可以通过指定下标访问元素,并可以指定元素在集合中的存储位置。在List类集中,下标从0开始。List接口除继承了Collection接口声明的方法外,还定义了它自己的一些方法,具体见表6-2。表6-2List接口声明的方法方法功能描述booleanadd(intindex,Objectelement)为当前调用的线性表添加元素element,插入位置由index指定,原有index位置及其右部的元素均后移booleanaddAll(intindex,Collectionc)将c中的所有元素插入调用的线性表中指定下标index位置,列表中原有index位置及其右部的元素均顺序后移Objectget(intindex)返回线性表中由index指定位置的元素intindexOf(Objectelement)返回线性表中与指定元素element匹配的第一个元素的下标值,若elenemt不在列表中则返回-1。intlastIndexOf(Objectelement)返回线性表中与指定元素element匹配的最后一个元素的下标值,若elenemt不在列表中则返回-1。ListIteratorlistIterator()返回当前线性表元素的迭代探子ListIteratorlistIterator(intindex)返回当前线性表中从index开始的元素的迭代探子intremove(intindex)删除线性表中指定下标位置index的元素Objectset(intindex,Objectelement)将线性表中指定下标index处的元素替换为elementListsubList(intfromIndex,inttoIndex)返回当前线性表中下标从fromIndex到toIndex的子线性表6.1.2ArrayList类在Java中的数组是定长的,一旦数组被创建后就无法改变其大小。若在定义数组时还无法确定其存储空间,只有在程序运行时才能知道实际需要的数组空间时,可以选择通过ArrayList类声明可变长度的数组。ArrayList类实现了List接口,它将元素存储在一个动态数组中,存储空间大小可随存储元素的多少进行动态变化。ArrayList提供了三个构造函数:①ArrayList()②ArrayList(Collectionc)③ArrayList(intinitialCapacity)其中构造函数①用于创建一个空数组列表,构造函数②用于建立一个包含集合c中所有元素的数组列表,构造函数③用于建立一个指定初始大小为initialCapacity的数组列表。例6.1创建一个空数组列表,在其中顺序添加A、B、C、D、E、F六个对象,并显示该数组列表的内容和大小。然后在该数组列表中添加和删除元素,并将修改后的数组列表内容输出。程序源代码见ArrayListExample.java,程序运行结果见图6-1。//ArrayListExample.javaimportjava.util.*;publicclassArrayListExample{publicstaticvoidmain(Stringargs[]){ArrayListarraylist=newArrayList();//建立一个空数组列表//向arraylist中依次添加A、B、C、D、E、Farraylist.add(A);arraylist.add(B);arraylist.add(C);arraylist.add(D);arraylist.add(E);arraylist.add(F);//显示arraylist的内容和大小System.out.println(Theoriginalcontentsofthearraylistis:+arraylist);System.out.println(Theoriginalsizeofthearraylistis:+arraylist.size());arraylist.add(2,A);//在下标位置为2处插入Aarraylist.add(4,newInteger(5));//在下标位置为4处插入整数5//输出插入元素A和5以后arraylist的内容和大小System.out.println(Afteraddingelements,thearraylistis:+arraylist);System.out.println(Thesizeofthearraylistis:+arraylist.size());arraylist.remove(E);//删除Earraylist.remove(1);//删除下标1处存放的对象//输出删除元素E和下标为1处的元素后arraylist的内容和大小System.out.println(Afterdeletingelements,thearraylistis:+arraylist);System.out.println(Thesizeofthearraylistis:+arraylist.size());System.out.println();}}图6-1例6.1运行结果说明:从该程序的输出结果可知,在Arraylist中可以存放相同的元素,从图6-1中可以看到A在arraylist中存放了两次。数组列表的大小将随数组列表中存放元素的个数而变化。在ArrayListExample.java中调用了size()方法来获取arraylist的元素个数,size()方法是ArrayList类从List接口继承下来的方法。与ArrayList类相似的还有LinkedList类。LinkedList类也实现List接口,它将元素存储在链表中。用户可以根据实际需要选择合适的数据结构类来解决问题。当只在线性表尾部进行插入或删除元素的操作,选择ArrayList类声明的数组效率相对会高一些;若需要在线性表的任意位置插入或删除元素,LinkedList类声明的数组效率会更高一些。LinkedList提供了两个构造函数:①LinkedList()②LinkedList(Collectionc)其中构造函数①用于创建一个空链接列表,构造函数②用于建立一个包含集合c中所有元素的链接列表。例6.2创建一个空链接列表,并在其中依次添加1、2、3、4、5共5个元素,显示该链接列表的内容和大小。然后在该链接列表中添加和删除元素,并将修改后的链接列表内容输出。程序源代码见LinkedListExample.java,程序运行结果见图6-2。//LinkedListExample.javaimportjava.util.*;publicclassLinkedListExample{publicstaticvoidmain(Stringargs[]){LinkedListlinkedlist=newLinkedList();//建立一个空链接列表//向linkedlist中依次添加1、2、3、4、5linkedlist.add(newInteger(1));linkedlist.add(newInteger(2));linkedlist.add(newInteger(3));linkedlist.add(newInteger(4));linkedlist.add(newInteger(5));//显示linkedlist的内容System.out.println(Theoriginalcontentsofthelinkedlistis:);System.out.println(linkedlist);linkedlist.add(2,hello);//在列表下标为2处添加字符串hellolinkedlist.addFirst(First);//在linkedlist列表头添加字符串Firstlinkedlist.addLast(Last);//在linkedlist列表尾添加字符串LastSystem.out.println(Afteraddingelements,thelinkedlistis:);System.out.println(linkedlist);linkedlist.removeLast();//删除linkedlist列表尾部的元素linkedlist.set(1,one);//将列表下标为1处的元素替换为字符串oneSystem.out.println(Afterdeletingandchanging,thelinkedlistis:);System.out.println(linkedlist);System.out.println();}}图6-2例6.2运行结果说明:LinkedList类除了继承List接口定义的方法外,还有自定义的一些方法。如:addFirst(objecto)方法用于在列表头添加元素o;addLast(objecto)方法用于在列表尾添加元素o;removeFirst()方法用于删除位于列表头的元素;removeLast()方法用于删除列表尾的元素;getFirst()方法用于访问列表头的元素;getLast()方法用于访问列表尾的元素。6.2Set和HashSet类Set接口扩展了Collection接口,和List接口不同的是,Set定义的集合中不能包含相同的元素。Set除了继承Collection定义的方法外,本身并没有定义其他的方法。HashSet类实现了Set接口,由HashSet类声明的集合使用散列表(has
本文标题:第6章常用的工具类
链接地址:https://www.777doc.com/doc-2197380 .html