A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨成 中级黑马   /  2013-9-4 01:35  /  1457 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨成 于 2013-9-4 14:32 编辑

定义一个方法,把任意参数类型的集合中的数据安全地复制到相应类型的数组中。
   public static <T> void copy1(Collection <T> dest,T[] src){
  
   }
定义一个方法,把任意参数类型的一个数组中的数据安全地复制到相应类型的另一个数组中。
  public static <T> void copy2(T[] dest,T[] src){
  
  }


有哪位大神帮忙实现下,我做的总是有点问题,求赐教!

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

3 个回复

倒序浏览
你能不能把你的代码贴出来 大家看下呢  这样你自己写的就会改正过来
回复 使用道具 举报
        public static <T> void copy1(Collection<T> dest,T[] src){
                int pos = 0 ;
                Iterator<T> it = dest.iterator();
                while(it.hasNext()){
                        T t = it.next();
                        src[pos]= t;
                        pos++ ;
                }
        }
测试是对的,希望对你有用。主要就是在集合迭代与数组角标和泛型规范这。copy2方法体原理一样,自己动手动脑写写。

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1

查看全部评分

回复 使用道具 举报
唉,昨晚上睡太晚了,不清醒,今天看出来了!

public static <T> void copy1(Collection <T> dest,T[] src){
                 System.out.println(src.length+":"+dest.size());
                 if(src.length<dest.size())
                         System.out.println("目标数组存储空间不够");
                 
                 /*int pos = 0 ;
               Iterator<T> it = dest.iterator();
               while(it.hasNext()){
                       T t = it.next();
                       src[pos]= t;
                       pos++ ;
               } */
                 
                dest.toArray(src);         
                System.out.println(src.length+":"+dest.size());
}
         
public static <T> void copy2(T[] dest,T[] src){
                 
                 if(src.length<dest.length)
                         System.out.println("目标数组存储空间不够");
                 
                 for(int i=0;i<dest.length;i++){
                         src[i]=dest[i];
                 }
                  
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马