用接口实现队列的末尾和指定位置的插入,删除,指定位置元素查询_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 用接口实现队列的末尾和指定位置的插入,删除,指定位置元素查询

用接口实现队列的末尾和指定位置的插入,删除,指定位置元素查询

 2013/10/11 3:22:07  MNTMs  程序员俱乐部  我要评论(0)
  • 摘要:/***定义一个接口类(定义数组的增加,删除,按下标查询,返回队列长度)的方法*/package队列增删改查;publicinterfaceIFunction{//向队列中加入一个元素publicvoidadd(Strings);//删除数组中指定下标的元素publicvoiddelete(intindex);//将元素插入到指定的位置publicvoidinsert(Strings,intindex);//获取队列中指定的下标的元素publicStringget(intindex)
  • 标签:实现 队列 接口 定位

/**
?* 定义一个接口类(定义数组的增加,删除,按下标查询,返回队列长度)的方法
??*/
package 队列增删改查;

public interface IFunction {
??? //向队列中加入一个元素
?public void add(String s) ;
??
?//删除数组中指定下标的元素
?public void delete(int index);
?
?//将元素插入到指定的位置
?public void insert(String s,int index);
?
?//获取队列中指定的下标的元素
?public String get(int index);
?
?//得到队列的长度
?public int size();
}

/*
?* 实现接口中的方法
?*/
package 队列增删改查;

public class FunctionTest implements IFunction {

?String[] s1 = new String[0];?????????????????????? //首先定义一个元素个数为0的数组
?
?//向队列末尾加入一个元素方法的实现:

//先将原来的数组复制到新的数组中去,在将加进来的元素补到新的数组的末尾
?public void add(String i2) {
??String[] s2 = new String[s1.length+1];?????//首先定义一个比原来的数组大一的新的数组
??for(int i = 0; i < s1.length; i++) {???????????????//利用循环将旧的数组复制到新的数组中
???s2[i] = s1[i];
??}
??s2[s1.length] = i2;????????????????????????????????????//将加进来的新的元素补到新数组的末尾
??????? s1 = s2;?????????????????????????????????????????? ??//将原来的数组指向新的数组,以下方法出现均同理
?}


?//删除数组中指定下标的元素
?public void delete(int index) {
??String[] s2 = new String[s1.length-1];?????? //先定义一个比原来数组小1的数组
??for(int i = 0; i < s1.length-1; i++) {?????????????//利用循环和判断语句分别将旧数组的元素复制到新的数组中
???if(i < index) {?????????????????????????????????????????????
????s2[i] = s1[i];?????????????????????????????????????????????//当i < index 时直接复制??????
???}
???else s2[i] = s1[i+1];?????????????????????????????????? //当i >= index时,将旧的数组的下一个下标的元素复制到新的数
??}??????????????????????????????????????????????????????????????? //当前的下标下
??s1 = s2;
?}
????
?//将元素插入到指定的位置
?public void insert(String s, int index) {
??String[] s2 = new String[s1.length+1];
??for(int i = 0; i < s1.length; i++) {
???if(i < index) {????????????????????????????????????????? //利用循环并判断,

????????????????????????????????????????????????????????? ??????//? 当i<index时直接复制到新的数组中去
????s2[i] = s1[i];
???}
???else if(i == index) {?????????????????????????????????//当i = index 时 将要插入的元素插入到新数组的当前下标下
????s2[i] = s;
???}
???else
????for(int j = index; j < s1.length; j++) {??????//当i > index 时 利用循环将旧的数组从下标等于index的元素起
????s2[j+1] = s1[j];???????????????????????????????????????//依次复制到新的数组的比其大1的下标下?
???}
??}
??
??s1 = s2;
?}
?
?//获取队列中指定的下标的元素
?public String get(int index) {
??
??return s1[index];??????????????????????????????????????????? //返回指定下标的元素
?}


?//得到队列的长度
?public int size() {
??
??return s1.length;?????????????????????????????????????????????//调用length方法返回队列的长度??????
?}

?

}

/**
?* 程序入口类
?*/
package 队列增删改查;

public class Main {

?public static void main(String[] args) {
??
??FunctionTest fun = new FunctionTest();
??
??//向队列中加入十个元素
??for(int i = 0; i < 10; i++) {
???String s = i+"";
???fun.add(s);
??}
??
??//打印出每个元素
??System.out.println("加入十个元素后队列的元素如下:");
??for(int i = 0; i < fun.size() ; i++) {
???System.out.print(" "+fun.get(i));??????????????????????????//调用get()方法打印出每个元素
??}
??
??System.out.println();
??//返回队列的长度
??System.out.println("队列的长度为"+fun.size());???? //调用size()方法打印出队列的长度
??
??//删除指定下标的元素
??fun.delete(3);
??
??//打印出删掉后队列的各个元素
??System.out.println("删除指定元素后队列的元素如下(删除下标为3的元素):");
??for(int i = 0; i < fun.size(); i++) {
???System.out.print(" "+fun.get(i));
??}
??System.out.println();
??
??//返回队列删除元素后队列的长度
??System.out.println("删除后队列的长度为"+fun.size());
??
??//向指定的位置插入元素
??System.out.println("向指定下标(4)插入指定元素(100)后队列变为:");
??fun.insert("100", 4);
??for(int i = 0; i < fun.size() ; i++) {
???System.out.print(" "+fun.get(i));
??}
??
??System.out.println();
??System.out.println("插入后元素的个数变为"+fun.size());
?
???? }
}

输出结果:

加入十个元素后队列的元素如下:
?0 1 2 3 4 5 6 7 8 9
队列的长度为10
删除指定元素后队列的元素如下(删除下标为3的元素):
?0 1 2 4 5 6 7 8 9
删除后队列的长度为9
向指定下标(4)插入指定元素(100)后队列变为:
?0 1 2?4?100 5 6 7 8 9
插入后元素的个数变为10

上一篇: 基于MVC4+EasyUI的Web开发框架形成之旅--权限控制 下一篇: 没有下一篇了!
发表评论
用户名: 匿名