[英]generic method in java to sum up all the values in a given list whether it be String ,int,double
如何编写此方法?
public static <T> void adds(List<T> k,int i)
{
T y;
List<T> g = new ArrayList<T>();
for(i=0;i<5;i++) {
y+= k.get(i));}
}
}
我应该用什么作为总和?
我尝试将类型T声明为变量以将总和放入其中。
您可以使用一个通用方法,该方法将要求和类型的BinaryOperator<T>
求和,并调用它在reduce操作中进行加法:
public static <T> T sum(List<T> list, BinaryOperator<T> adder) {
return list.stream().reduce(adder).get();
}
您可以像这样使用它:
List<String> s = Arrays.asList("1", "2", "3");
sum(s, (s1, s2) -> String.valueOf(Double.parseDouble(s1) + Double.parseDouble(s2))); //"6.0"
sum(Arrays.asList(1, 2, 3, 4), (a, b) -> a + b); //10
这使得该方法不受特定于类型的“加法”逻辑的影响(因此可以串联字符串列表,添加数字等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.