Java编程题目与数据结构有关

public class Sequence<T> {
    //final int maxSize=10;    //顺序表长度
    private T[] listArray;   //存储数据元素的数组对象
    private int length;      //已存数据元素个数
    
    //无参构造方法
    public Sequence ( )  {    }
       
    //带参构造方法,初始化一个长度为n的顺序表
    public Sequence (int n)  {
        if(n<=0){
                System.out.println("错误!长度不能小于0");
                System.exit(1);
             }
         length=0;  //顺序表初始为空
         listArray=(T[])new Object[n];
       } 
    
    //插入数据元素
       public boolean insert(T obj,int pos) {
        if(pos<1||pos>length+1){
            System.out.println("pos值不合法,指定插入的位置不存在");
            return false;
        }
        if(length==listArray.length){  //若数组元素长度不够,需要加长长度,并将已有元素都复制过来
             T[] p=(T[])new Object[length*2];
             for(int i=0;i<length;i++)
                 p[i]=listArray[i];
             listArray=p;   
        }
        for(int i=length;i>=pos;i--)
             listArray[i]=listArray[i-1];
        listArray[pos-1]=obj;   
        length++;
        return true;
    }
       
       //判断顺序表是否为空
       public boolean isEmpty(){
           return length==0;
       }

       //删除数据元素
    public T delete(int pos) { 
        
        T x=listArray[pos-1];
        for(int i=pos;i<=length;i++)
            listArray[i-1]=listArray[i];
        length--;
        return x;
    }
    
    //查找数据元素
    public int find(T obj) {
        if(isEmpty( )){
            System.out.println("顺序表为空");
            return -1;
        }
        else{
            for(int i=0;i<length;i++)
                if(listArray[i].equals(obj))  
                    return i+1;
                return -1;        
        }        

    }
    
    //获取数据元素
       public T value(int pos)    {
           if(isEmpty( )){
               System.out.println("顺序表为空");
               return null;
           }
           else{
               if(pos<1||pos>length){
                   System.out.println("pos值不合法");
                   return null;
               }
               return listArray[pos-1];        
           }            
       }
       
       //修改数据元素 
       public boolean modify(T obj,int pos)
       {        if(isEmpty( )){
               System.out.println("顺序表为空");
               return false;
           }
               else{
                   if(pos<1||pos>length){
                           System.out.println("error");
                           return false;
                   }
                   listArray[pos-1]=obj;       return true;      
               }        
       }
       
       //求顺序表的长度
       public int size(){
           return length;
       }
       
       //顺序表正序输出
       public void nextOrder()    {
           int i;
        System.out.print("[");
           for(i=0;i<length-1;i++)
               System.out.print(listArray[i]+",");
           System.out.print(listArray[i]);
        System.out.print("]");
       }


}
题目要求:

1、在顺序表类Sequence.java中增加具有以下功能的方法:
  1)追加元素的add方法。即直接将新来的元素追加在顺序表的最后
  2)根据值查找来删除元素deleteValue方法,即按照传递过来的数据元素值进行匹配删除(可考虑匹配到多个相同值时,全部删除)
2、在主类中,新建Sequence的对象,实现以下功能:
  1)初始化顺序表s,长度为10,类型存储为字符串
  2)增加3个元素“ann”、“bob”、“cindy”
  3)在“cindy”前插入“caty”
  4)在最后追加一个“ann”
  5)输出显示这个顺序表s
  6)删除所有的“ann”

请问你在哪一个具体的要求上碰到了问题? 你尝试了怎么解决?

在顺序表的查找操作中,判定元素相等的条件为 if(key.equals(this.element[i])),若换成if(this.element[i].equals(key)),查找结果会怎样?为什么?