gpt4 book ai didi

java - 一个 Java 泛型函数来合并 3 种类型的循环

转载 作者:搜寻专家 更新时间:2023-11-01 03:21:03 25 4
gpt4 key购买 nike

我想知道是否有一个通用的 JAVA 函数可以将这些本质上相似的 4 个 for 循环合并到?

可选参数:

public static <E> void loopA(E... list) {
String str="";
for (E val : list) {
str+= val.toString();
}
}

数组类型E:

public static <E> void loopB(E[] list) {
String str="";
for (E val : list) {
str+= val.toString();
}
}

设置集合类型E:

public static <E> void loopC(Set<E> list) {
String str="";
for (E val : list) {
str+= val.toString();
}
}

列表集合类型E:

public static <E> void loopD(List<E> list) {
String str="";
for (E val : list) {
str+= val.toString();
}
}

将以上 4 项变成其中一项:

public static <E> void loopSigma(...){
String str="";
for (E val : list) {
str+= val.toString();
}
}

最佳答案

我会保留带有 varargs 参数的方法,并会引入带有 Collection<E> 的方法参数(将从 varargs 方法调用)。

例如:

public static <E> void loopA(E... list) {
loopSigma(Arrays.asList(list));
}

public static <E> void loopSigma(Collection<E> collection){
String str="";
for (E val : collection) {
str += val.toString();
}
}

此外,如果您使用的是 Java8,则可以重构 loopSigma()方法体到一行:

String str = collection.stream().collect(Collectors.joining());

关于java - 一个 Java 泛型函数来合并 3 种类型的循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com