队列,泛型

来源:互联网 发布:大数据总监 编辑:程序博客网 时间:2024/06/05 00:27
package 队列;

public class List<E> {
//新建一个数组
private Object old []=new Object [0] ;
/**
* 在数组末尾添加元素
* @param num
*/
public void add(E num){
//新建一个新数组
Object news []=new Object [old.length+1];
//将老数组复制到新数组里
for(int i=0;i<old.length;i++){
news[i]=old[i];
}
//在最后再加入这个新元素
news[news.length-1]=num;
//把新数组赋给老数组,替代后,老数组加上了元素
old=news;
}
/**
* 删除元素
* @param local 要删除的元素位置
*/
public void delete(int local){
int label;//要删除的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组
Object news []=new Object[old.length-1];
//将要删除的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将下标label之后的数组复制,放入新数组,以老数组为参照物
for(int i=label+1;i<=old.length-1;i++){
news[i-1]=old[i];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}


/**
* 在某位置插入某元素
* @param local
* @param num
*/
public void insert(int local,E num){
int label;//要插入的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组,比之前多一个位置
Object news []=new Object[old.length+1];
//将要插入的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将要插入的新元素放进要插入的位置
news[label]=num;
//将下标label之后的数组复制,放入新数组,xin数组为参照物
for(int i=label+1;i<news.length;i++){
news[i]=old[i-1];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}

/**
* 修改老数列某个值
* @param local
* @param num
*/
public void modify(int local,E num){
int label;//要xiugai的元素下标
label=local-1;//下标等于位置号减1
//新建一个新数组,和以前的数组一样的位置
Object news []=new Object[old.length];
//将要插入的元素之前的元素复制,放入新数组
for(int i=0;i<label;i++){
news [i]= old [i];
}
//将新元素放进要换掉的位置
news[label]=num;
//将下标label之后的数组复制,放入新数组,以新数组为参照物
for(int i=label+1;i<news.length;i++){
news[i]=old[i];
}
//将新数组赋给老数组,老数组成功删减
old=news;
}


/**
* 获取某个位置的值
*/
public E getvalue(int local){
return (E)old[local-1];
}


/**
* 获取队列的长度(大小)
*/
public int getsize(){
return old.length;
}

}




package 队列;

public class Mytest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Integer> list=new List();
list.add(1);
list.add(14);
list.add(18);
list.add(10);
list.add(19);
list.add(2);
list.add(15);
list.add(7);
list.add(13);
list.add(10);
list.insert(5, 19);//???


// list.delete(5);
list.modify(1, 90);
for(int i=1;i<=list.getsize();i++){
System.out.println(list.getvalue(i));
}
}

}

原创粉丝点击