【发布时间】:2011-09-30 01:38:05
【问题描述】:
如何在 Java 中编写一个静态方法,它将接受一个 List,对每个元素执行一个操作,并返回结果(当然不影响原来的)?
例如,如果我想为每个元素添加 2,那么这里的 ... 是什么?具体的返回类型必须相同,例如如果我的列表是一个值为 1、2、3 的 LinkedList,我应该取回一个值为 3、4、5 的 LinkedList。 ArrayList、Vector、Stack等也是类似的,都是List。
我可以看到如何使用多个 if (lst instanceof LinkedList) ... 等来做到这一点...还有更好的方法吗?
import java.util.List;
public class ListAdd {
static List<Integer> add2 (List<Integer> lst) {
...
return result;
}
}
【问题讨论】:
-
@Brandon:不过,他将如何复制列表?
-
@Luigi:使用反射是一个可接受的解决方案吗?
-
@thkala:他应该可以使用 Collections.copy(List,List) 方法。
-
@Brandon: Collections.copy(List,List) 要求您提供目标列表 - 您需要的类的实际实例。
-
@thkala:明白。而且......我明白你的意思。感谢您指出这一点。