如题
所要实现的方法如下:
(1)单元素添加、删除操作。boolean add(Object o),将对象添加给集合。boolean remove(Object o),如果集合中有与o相匹配的对象,则删除对象o。(2)查询操作。int size(),返回当前集合中元素的数量。boolean isEmpty(),判断集合中是否有任何元素。boolean contains(Object o),查找集合中是否含有对象o。Iterator iterator(),返回一个迭代器,用来访问集合中的各个元素。(3)组操作:作用于元素组或整个集合。boolean containsAll(Collection c),查找集合中是否含有集合c中所有元素。boolean addAll(Collection c),将集合c中所有元素添加给该集合。void clear(),删除集合中所有元素。void removeAll(Collection c),从集合中删除集合c中的所有元素。void retainAll(Collection c),从集合中删除集合c中不包含的元素。
(4)Collection转换为Object数组:Object[] toArray(),返回一个内含集合所有元素的数组。Object[] toArray(Object[] a),返回一个内含集合所有元素的数组。运行期返回的数组和参数a的类型相同。注意:Collection不提供get()方法。如果要遍历Collectin中的元素,就必
十分谢谢

解决方案 »

  1.   

    这不就是接口Collection所有的方法吗,你是想做共同类吧,像这样封装一下的话就行了。
    import java.util.Collection;
    Class CommonCollection{
      private Collection c;  public CommonCollection(Collection c){
        this.c = c;
      }  public void add(Object o){
        c.add(o);
      }
      ...
    }
      

  2.   

    KK3K2005 源代码在哪啊 请你告诉我啊
      

  3.   

    http://gceclub.sun.com.cn/Java_Docs/html/zh_CN/api/index.html
    源代码的文档,想看源代码的话,上你的jdk文件夹下面有个src.zip,源代码全在里面,解压了就能看到
    另外这个东西本身不难,只是给你一个参照。剩下的可以照着文档练着自己写写,都是一样的东西。
      

  4.   

    我看了啊 可是里面没有具体的实现方法 都是空的方法体 ,因为collection是接口啊。 我需要的是已经实现了其所有方法的东东
      

  5.   

    sjkof 我想问问你啊 为什么让我看arraylist呢 是不是只有arraylist一种可以啊 而其他的实现类都比不上它呢?
    谢谢
      

  6.   

    一开始还以为你是要共通,通过回调来使用这个共通类呢。现在看来你这个和作业的感觉差不多似的。好吧,代码我再补充一点
    import java.util.Collection; 
    Class CommonCollection{ 
      private Collection c;   public CommonCollection(Collection c){
        this.c = c; //这里用到了回调
      }   public void add(Object o){ 
        c.add(o); 
      } 
      ... 
    }public Class Test{
      public static void main(String[] args){
        ArrayList list = new ArrayList();
        CommonCollection cc1 = new CommonCollection(list);
        cc1.add("123");    TreeSet set = new TreeSet();
        CommonCollection cc2 = new CommonCollection(set);
        cc2.add("abc");
      }
    }或者像这样用反射
    public Class Test{
      public static void main(String[] args){
        Collection list = Class.forName("java.util.ArrayList").newInstance();
        CommonCollection cc1 = new CommonCollection(list);
        cc1.add("123");    Collection set = Class.forName("java.util.TreeSet").newInstance();
        CommonCollection cc2 = new CommonCollection(set);
        cc2.add("abc");
      }
    }
    回调的话,就是传进去父类或者接口就可以了,虚拟机会自动判断具体是什么类型。接口本身只提供了方法名,上面的写法实际执行的各个具象类中相关的方法。而Collection本身就是接口。实际项目中如果要写共通的话,用反射或者依赖注入这样的比较多。如果还是不能理解的话,搂主去看看回调的用法就应该会明白了。
      

  7.   

    我写成这种样子报错了:
    java.lang.NoSuchMethodError: main
    Exception in thread "main" 
    我是想把1,2,3输出到控制台上看看,我错哪了呢
    public static void main(String[] args){ 
            Collection list;
    try {
    list = (Collection) Class.forName("java.util.ArrayList").newInstance();
    list.add("123"); 
    for(int i=0;i<list.size();i++)
    System.out.println(list.toString());
    } catch (InstantiationException e) {
    e.printStackTrace();

    }
      

  8.   

    我还有最后一个问题 问问你啊 :
    源代码中  public E remove(int index) {。}方法中的一条语句如下:
    elementData[--size] = null; // Let gc do its work
    这里的注释// Let gc do its work
    是什么意思呢?请详解一下好吗?
      

  9.   

    Java 自带类 ArrayList 就可以满足楼主的所有要求了.
      

  10.   

    搂主这样写:
    Collection list;
    list = (Collection) Class.forName("java.util.ArrayList").newInstance();
    或者像我这样写:
    Collection list = Class.forName("java.util.ArrayList").newInstance();是不能调用 list.toString(); 这个方法的,因为接口Collection中是没有toString()这个方法的。
    回调是在别的方法里面调用,而不是在同一个方法里面使用。
    另外想查看list里面的数据,也是这样查看的,ArrayList其实就是动态数组,需要指定里面的元素的位置,像这样 list.get(i).toString();还有 (Collection) Class.forName("java.util.ArrayList").newInstance(); 中的(Collection)这样写可能会有问题,向上转形成接口类型没有实际的意义。关于Let gc do its work,gc指的是垃圾回收器,这句话的意思是让垃圾回收器来回收不用的数据。像C/C++里面不用的数据需要程序员自己写回收代码;Java里面不用,都交给垃圾回收器去做的。