繁体   English   中英

java中的通用方法,用于汇总给定列表中的所有值,无论它是String,int,double

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM