首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java行列的实现和优化(泛型)

2013-03-28 
Java队列的实现和优化(泛型)public class Queue{private int size0private int[] arraynew int[size]p

Java队列的实现和优化(泛型)
public class Queue{ private int size=0; private int[] array=new int[size]; public Queue{ this(0); } public Queue(int size) { this.size=size; } //主函数 程序入口 public static void main(String[] args) { }//加入元素的方法public void add(int e){//新建数组int[] newarray=new int[size];//拷贝数据for(int i=0;i<size;i++){newarray[i]=array[i];}//末尾赋值newarray[array.length]=e;size++;//地址拷贝array=newarray;}}

?如此我们实现了一个存储整数的队列(增 删 查 改 是容器必备的操作在此只是抛砖引玉只写增加的操作)

回到现实应用中,我们发现我们面对的是很多不同数据的存储,所以我们得用很多的队列类来实现,这未免有些繁琐,Java中我们有一种功能,就是类定义时候可以使得它传入各种类型的参数而不限制与某一种,这就是泛型。如同C++的类模板一样,泛型可以涵盖Java的所有数据类型。

//泛型定义 在类名后面加<E>public class Queue<E> {}

?E代表了所有的数据类型,带对象创建时候可以指定它为某一类型的存储器,比如Queue<int> q=new Queue<int>();这就是建立了一个存整数的队列。

在定义泛型的时候,数组定义怎么改变呢?

只要把数组的类型名改成Object就行: Object [] array=new Object[];

Object是所有类的父类,之后可以转型为各种类型。

public class Queue<E> {//定义属性 size游标和array存储域private int size=0;private Object[] array=new Object[size];//如果用户调用无参的构造方法 则自动调用带一个参数的构造方法并且传入参数0public Queue(){this(0);}//设置size值的构造方法public Queue(int size){this.size=size;}public static void main(String[] args) {}//加入元素的方法public void add(E e){//新建数组Object[] newarray=new Object[size];//拷贝数据for(int i=0;i<size;i++){newarray[i]=array[i];}//末尾赋值newarray[array.length]=e;size++;//地址拷贝array=newarray;}}

?

热点排行