自定义队列与泛型

自定义队列与泛型理解

 

1、自定义队列

     在java中数组可以被创建为各种数据类型,可以为int,short等类型,也可以为对象数组,那么就很容易想到用数组来存储程序中的数据。但是数组在创建的过程中,其大小是确定的,而我们在编程时,往往不知道会有多少数组需要存储,此时就需要我们自己来创建某种存储结构,使其能按照程序的需要改变存储空间的大小。在数据结构中,我们了解到有栈及队列,下面介绍一下本菜鸟对自定义队列的理解与实现

 

     自定义队列接口中的抽象方法应该包括基本的数据存储操作,包括添加元素,删除元素,查找,取得元素个数......

在接口的实现类中,分别重写抽象方法,本菜鸟以为,自定义队列其本质就是两个数组之间的相互传递,包括值传递和引用传递。

首先创建一个长度为零的源数组src,然后在方法中,再创建一个长度为src.length+1的新数组operation,先对operation数组进行不同的操作,然后将src中的数据赋值给operation,最后再将operation的地址传给src,这样就实现了数据的基本操作。下面以添加为例:

 

public void add(int i){
  //1.新建一个数组,长度是原数组长度+1
  Object[] operation = new Object[src.length+1];
  //2.将要加入的对象放入新数组的最后位置
  operation[src.length]=i;
  //3.将原数组中的数据放到新数组中,使用系统提供的数组copy方法
  System.arraycopy(src, 0, operation, 0, src.length);
  //指向新建的数组
  src = operation;
 }

 

 

2、泛型

     以上队列的缺点就是,一旦创建好了队列的实现类,那么其操作的数据类型就已经确定了,但是在程序中,数据类型有很多种,我们不需要为每一种都创建一个队列,此时,就使用到了jdk5中新的“泛型”来解决。实现效果为只创建一个队列,可以存储各种类型。实现方法为在接口,实现类的名称后面附加所要操作的数据类型,既然我们需要使其可以操作各种各种类型,那么,很显然,指定为所有类的父类Object类既可。例如public class STList<Object> implements NetJavaList<Object>,此类为实现NetJavaList接口,以Object类型数据为操作对象的自定义队列类。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值