论坛首页 招聘求职论坛

一道面试题

浏览 8145 次
锁定老帖子 主题:一道面试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-07-12  
泛型没有办法使用基本数据类型,如果要转换的数组时int char 如何解决
0 请登录后投票
   发表时间:2010-07-12  
ZhangShukai 写道
liang86 写道
yutianl 写道
面试的时候,遇到一道题:
将一个数组的元素重新存储到Collection中并返回。需考虑方法的通用性。提示,使用泛型

感觉应该不难,但对泛型用的比较少,没答出来,不知怎么写。



其实这个是很基本的面试题
可以按如下设计
注:
面试题中的Collection指的是集合的接口Collection的实现类有Vector、List和Set,具体点有ArrayList\LinkeList\HashSet\TreeSet等,下面只列出了一种,用到是稍做更改就可以了
T代表数组的类型,这样就考虑到了方法的通用性

public void arrayToCollection(T arr[]){

ArrayList<T> arrayList=new ArrayList<T>();

for(int i=0;i<arr.length;i++){
arrayList.add(arr[i]}
}

}

真的假的,这么简单的吗???


感觉用命令模式调用Collections里面的add方法
我大体写下,没有测试,提供个思路:

public Collection fillin(Collection collection, T[] array) {
    for (T t : array) {
        collection.add(t);
    }
    return collection;
}
0 请登录后投票
   发表时间:2010-07-12  
stefanoli_0705 写道
ZhangShukai 写道
liang86 写道
yutianl 写道
面试的时候,遇到一道题:
将一个数组的元素重新存储到Collection中并返回。需考虑方法的通用性。提示,使用泛型

感觉应该不难,但对泛型用的比较少,没答出来,不知怎么写。



其实这个是很基本的面试题
可以按如下设计
注:
面试题中的Collection指的是集合的接口Collection的实现类有Vector、List和Set,具体点有ArrayList\LinkeList\HashSet\TreeSet等,下面只列出了一种,用到是稍做更改就可以了
T代表数组的类型,这样就考虑到了方法的通用性

public void arrayToCollection(T arr[]){

ArrayList<T> arrayList=new ArrayList<T>();

for(int i=0;i<arr.length;i++){
arrayList.add(arr[i]}
}

}

真的假的,这么简单的吗???


感觉用命令模式调用Collections里面的add方法
我大体写下,没有测试,提供个思路:

public Collection fillin(Collection collection, T[] array) {
    for (T t : array) {
        collection.add(t);
    }
    return collection;
}


刚刚写了一个测试类,这样就可以了。上一个例子还是有点问题,有可能会有warning
public class JutilExtHelper {

public static <T> Collection<T> copy(Collection<T> collection, T[] array) {
for (T t : array)
collection.add(t);
return collection;
}

public static void main(String args[]) {
List<String> list = (List<String>) copy(new ArrayList<String>(), args);
for (String str : list) {
System.out.println("one of the content is: " + str);
}
}
}
0 请登录后投票
   发表时间:2010-07-12  
zha_zi 写道
泛型没有办法使用基本数据类型,如果要转换的数组时int char 如何解决


不太方便,有可能要考虑jvm的隐式转换问题,即声明集合类的时候<Integer>这种东西,但是相对就比较麻烦了。
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics