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

自定义行列

2012-12-19 
自定义队列数组的交换和数组中的数据的交换是不同的,一个是引用传递,一个是值传递。队列内部需要数组的支持

自定义队列

数组的交换和数组中的数据的交换是不同的,一个是引用传递,一个是值传递。

队列内部需要数组的支持,归根到底还是要靠数组保存数据。

队列的优点是长度没有固定(可以增加和删除元素),也就可以拥有无限的队列元素(相对于单纯的数组而言,世界上是没有绝对的东西的),有利于庞大的数据处理。

public class Queue {//创建一个队列内部数组User[] use = new User[0]; //增加一个元素public void add(User data){//创建一个数组,用以临时保存队列中的数据User[] temp = new User[use.length+1];//将队列中的数据赋给临时数组for(int i=0;i<use.length;i++){temp[i] = use[i];}//将要添加的数据添加到临时数组temp[temp.length-1] = data;//交换数组use = temp;}//删除一个元素public void del(int index){//创建一个临时数组User[] temp = new User[use.length-1];//判断要删除的元素是第几位if(index == 1){for(int i=0;i<use.length-1;i++){use[i] = use[i+1];}//将队列中的数据赋给临时数组for(int i=0;i<temp.length;i++){temp[i] = use[i];}}if(index == use.length){for(int i=use.length-1;i>0;i--){use[i] = use[i-1];}//将队列中的数据赋给临时数组for(int i=0;i<temp.length;i++){temp[i] = use[i+1];}}if(index>1 && index<use.length){for(int i=0;i<index;i++){temp[i] = use[i];}for(int j=index+1;j<use.length;j++){temp[j-1] = use[j];}}//交换数组use = temp;}/** * 取出指定位置的数据 * @param index * @return */public User get(int index){        return use[index];}/** * 队列中元素的个数 * @return */public int size(){return use.length;}//程序入口public static void main(String args[]){//创建一个队列对象Queue q = new Queue();//给队列添加元素for(int i=0;i<5;i++){User u=new User();u.id=i;u.name="用户"+i;//加入到队列中q.add(u);}//删除一个元素q.del(3);//打印数据for(int i=0;i<q.size();i++){User us=q.get(i);System.out.println((i+1)+"号取出: "+us.name);}}}

?

public class User {public int id;public String name;}

??

热点排行