面向对象程序设计第8章

上传人:zw****58 文档编号:51443669 上传时间:2018-08-14 格式:PPT 页数:19 大小:97.50KB
返回 下载 相关 举报
面向对象程序设计第8章_第1页
第1页 / 共19页
面向对象程序设计第8章_第2页
第2页 / 共19页
面向对象程序设计第8章_第3页
第3页 / 共19页
面向对象程序设计第8章_第4页
第4页 / 共19页
面向对象程序设计第8章_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《面向对象程序设计第8章》由会员分享,可在线阅读,更多相关《面向对象程序设计第8章(19页珍藏版)》请在金锄头文库上搜索。

1、第8章泛型程序设计与数据结构8.1 泛型程序设计泛型是JDK 5.0增加的一种抽象级别更高的程序设计机制,它可以将不同类型对象的同一种操作加以抽象、封装,使其享有更广泛的代码重用性,为有效地体现面向对象的程序设计思想提供了一个良好的途径。 public class ArrayList private Object element; public Object get(int index) return elementindex ; public void add(Object obj) ; public void sort( ) ; 在Java早期版本中的处理方法两个问题(1)获取对象时必须进

2、行强制类型转换。ArrayList list = new ArrayList();list.add(“Hello“);list.add(“World“);String str1 = (String) list.get(0);String str2 = (String) list.get(1);烦琐、不易于提高程序的可读性。如果忘记 强制类型转换还会出现错误。(2)没有检查类型错误。由于可以向list中添加任何类对象,所以 在后面的操作中可能会出现强制类型转换 错误。例如,Integer value = (Integer)list.get(0);list.get(0) 应该返回String类对象

3、的引 用,将其强制转换为Integer类是错误的 。 泛型类的声明和使用 public class Pair private T first; private T second; public Pair() first = null; second = null; public Pair(T first, T second) this.first = first; this.second = second; public T getFirst() return first; public T getSecond() return second; public void setFirst(T f

4、irst) this.first = first; public void setSecond(T second) this.second = second; Pair intPair = new Pair(new Integer(20), new Integer(100);Integer value1,value2;value1 = intPair.getFirst();value2 = intPair.getSecond();Pair strPair = new Pair(“Hello“, “world“);String str1, str2;str1 = strPair.getFirst

5、();str2 = strPair.getSecond();public class ThirdElement private U element1; private V element2; private W element3; public ThirdElement() element1 =null; element2 = null; element3 = null; public ThirdElement(U e1, V e2, W e3) element1 = e1; element2 = e2; element3 = e3; public U getElement1() return

6、 element1; public V getElement2() return element2; public W getElement3() return element3; 带3个参数的泛型定义ThirdElement e= new ThirdElement(new Integer(10), “Java“, new Float(20.0);Integer e1 = e.getElement1();String e2 = e.getElement2();Float e3 = e.getElement3();8.2 基本的数据结构接口聚集是一组对象的整体,其中的每个对 象被称为聚集的元素。

7、其中的集合没有 重复的元素,每个元素之间也没有任何 顺序关系。列表可以有重复的元素,元 素之间也人为地规定某种顺序关系。这 样就形成了今天应用十分广泛的集合、 链表和映射几种数据结构。Collection接口 package java.util; public interface Collection int size(); /返回集合中的元素个数boolean isEmpty(); /判断集合是否为空boolean contains(E o); /判断对象o是否包含在集合中Iterator iterator(); /返回集合的迭代器Object toArray(); /将集合中的所有元素存入

8、一个数组中返回Object toArray(Object a); /将集合中的元素存入数组中返回boolean add(E o); /将对象o添加到集合中boolean remove(Object o); /从集合中删除对象oboolean containsAll(Collection c); /判断本集合是否包含集合cboolean addAll(Collection c); /将集合c中的所有元素添加到本集合中boolean removeAll(Collection c); /从本集合中删除所有包含在集合c中的元素boolean retainAll(Collection c); /从本集合

9、中删除没有包含在集合c中的元素void clear(); /清空集合boolean equals(Object o); /比较集合与对象o是否相等int hashCode(); /返回对象的hash编码 Set接口qSet接口是由Collecton派生而来的,它被用 来描述无重复元素的集合,其内部并没有声 明新的成员方法,只是限定不能存在重复的 元素。qSet接口派生了一个接口SortedSet和一个抽 象类AbstractSet。qSortedSet接口用来描述有序集合,TreeSet 类实现了这个接口,这个类描述了一个按升 序排列的集合。而抽象类AbstractSet实现了 部分Colle

10、ction接口,并有一个子类HashSet ,它以散列方式表示集合内容。import java.util.*; public class TryTreeSet public static void main(String args) Random value = new Random();TreeSet tree = new TreeSet();Integer data;for (int i = 0; i c ) 带参数的构造方法。public Object clone() 覆盖拷贝方法。public void ensureCapacity(int minCapacity) 重定义ArrayL

11、ist对象存放链表元素的最小容量。public void trimToSize()将ArrayList对象中多余的空间释放。LinkedList类提供的部分成员方法成员方法描述public LinkedList() 无参数的构造方法public LinkedList(Collectionc)带参数的构造方法,将集合c 作为LinkedList的初始 值 public void addFirst(E o)将对象o添加在列表的最前 面 public void addLast(E o)将对象o添加在列表的最后 面 public E getFirst()返回列表的第一个对象元素public E get

12、Last()返回列表的最后一个对象元 素 public E removeFirst()删除列表中的第一个对象元 素,并将其返回public E removeLast()删除列表中的最后一个对象 元素,并将其返回public Object clone()覆盖拷贝方法import java.util.*; public class TryArrayList public static void main(String args) ArrayList List = new ArrayList(20); int i;List.add(new Integer(2); /将最小的质数2加入Listfor (int primes = 3; primes Math.rint(Math.sqrt(primes) /将求出的质数加入ListList.add(new Integer(primes);for (i = 0; i List.size(); i+) /显示List中存放的质数System.out.print(List.get(i) + “t“);

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号