跪求高手给出  程序设计案例!

解决方案 »

  1.   

    ArrayOper.javapublic class ArrayOper {
    private Object[] array;
    private int length = 0;

    private ArrayOper(){}
    public ArrayOper(Object[] array) {
    this.array = array;
    if(array != null && array.length > 0){
    length = array.length;
    }
    }
    public int getLength() {
    return length;
    }

    public void add(Object o){
    if(length == 0){
    array = new Object[10];
    array[0] = o;
    }else if(length > 0){
    Object[] os = new Object[array.length + 1];
    this.copyArray(os);
    os[array.length] = o;
    array = os;
    length ++;
    }
    }

    private void copyArray(Object[] os){
    for(int i=0;i<array.length;i++){
    os[i] = array[i];
    }
    }

    public void setObj(Object o,int index) throws Exception{
    if(index >= array.length ){
    Exception e = new Exception("索引越界");
    throw e;
    }

    array[index] = o;
    }

    public Object getObj(int index) throws Exception{
    if(index >= array.length ){
    Exception e = new Exception("索引越界");
    throw e;
    }
    return array[index];
    }

    public int searchString(String s){
    for(int i=0;i<array.length;i++){
    if(array[i] instanceof String){
    if(array[i].equals(s)){
    return i;
    }
    }
    }
    return -1;
    }
    public int searchInteger(int num){
    for(int i=0;i<array.length;i++){
    if(array[i] instanceof Integer){
    if(((Integer)array[i]).intValue() == num){
    return i;
    }
    }
    }
    return -1;
    }
    public Object[] getArray(){
    return array;
    }
    }ArrayTest.javapublic class ArrayTest {
    public static void main(String[] args) throws Exception {
    Object[] arr = new Object[100];
    ArrayOper ao = new ArrayOper(arr);

    ao.setObj((Object)"hello", 99);
    ao.setObj((Object)1234, 77);

    ao.add(new String("你好"));

    int index = ao.searchString("hello");
    int index2 = ao.searchInteger(1234);
    int index3 = ao.searchString("haha");
    int index4 = ao.searchString("你好");

    System.out.println(index);
    System.out.println(index2);
    System.out.println(index3 < 0 ? "未找到项" : index3);
    System.out.println(index4);

    System.out.println(ao.getObj(77));
    System.out.println(ao.getObj(100));
    }
    }
      

  2.   

    ```````
    把二楼的部分代码改为
    List<Object> X = new ArrayList<Object>();
      

  3.   

    import java.util.ArrayList;
    import java.util.List;public class ArrayTest<T> {

    public List<T> array = new ArrayList<T>();

    public void add(T obj){
    if(obj!=null){
    this.array.add(obj);
    }
    }
    public void remove(T obj){
    if(obj!=null){
    this.array.remove(obj);
    }
    }
    public boolean find(T obj){
    boolean result = false;
    if(obj!=null){
    result = this.array.contains(obj);
    }
    return result;
    }
    public static void main(String args[]){

    ArrayTest<String> arr1 = new ArrayTest<String>();
    arr1.add("a");
    arr1.add("b");
    System.out.println(arr1.find("b"));

    ArrayTest<Integer> arr2 = new ArrayTest<Integer>();
    arr2.add(1);
    arr2.add(2);
    System.out.println(arr2.find(3));
    }
    }
    如果用自定义类作为数组类型的话,自定义类需要重写equals方法。