Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对java arraylist中的所有元素求和_Java_Arraylist_Sum - Fatal编程技术网

对java arraylist中的所有元素求和

对java arraylist中的所有元素求和,java,arraylist,sum,Java,Arraylist,Sum,如果我有:ArrayList m=newarraylist() 具有双重值​​在内部,我应该如何添加所有ArrayList元素 public double incassoMargherita() { double sum = 0; for(int i = 0; i < m.size(); i++) { } return sum; } public-double-incassoMargherita() { 双和=0; 对于(int i=0;i

如果我有:
ArrayList m=newarraylist()
具有双重值​​在内部,我应该如何添加所有ArrayList元素

public double incassoMargherita()
{
 double sum = 0;
 for(int i = 0; i < m.size(); i++)
 {          
 }
 return sum;
}
public-double-incassoMargherita()
{
双和=0;
对于(int i=0;i

由于?

不是很难,只需使用
m.get(i)
从列表中获取值

public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
        sum += m.get(i);
    }
    return sum;
}
public-double-incassoMargherita()
{
双和=0;
对于(int i=0;i
我还没有测试它,但它应该可以工作

public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
        sum = sum + m.get(i);
    }
    return sum;
}
public-double-incassoMargherita()
{
双和=0;
对于(int i=0;i
两种方式:

使用索引:

double sum = 0;
for(int i = 0; i < m.size(); i++)
    sum += m.get(i);
return sum;
使用Java 8:


适用于
整数
双精度
浮点

    List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5);
    List<Long> longs = Arrays.asList(1L, 2L, 3L, 4L, 5L);
    List<Double> doubles = Arrays.asList(1.2d, 2.3d, 3.0d, 4.0d, 5.0d);
    List<Float> floats = Arrays.asList(1.3f, 2.2f, 3.0f, 4.0f, 5.0f);

    long intSum = ints.stream()
            .mapToLong(Integer::longValue)
            .sum();

    long longSum = longs.stream()
            .mapToLong(Long::longValue)
            .sum();

    double doublesSum = doubles.stream()
            .mapToDouble(Double::doubleValue)
            .sum();

    double floatsSum = floats.stream()
            .mapToDouble(Float::doubleValue)
            .sum();

    System.out.println(String.format(
            "Integers: %s, Longs: %s, Doubles: %s, Floats: %s",
            intSum, longSum, doublesSum, floatsSum));
List ints=Arrays.asList(1,2,3,4,5);
列表长度=数组.asList(1L、2L、3L、4L、5L);
列表双精度=数组.asList(1.2d、2.3d、3.0d、4.0d、5.0d);
列表浮动=数组.asList(1.3f、2.2f、3.0f、4.0f、5.0f);
long intSum=ints.stream()
.mapToLong(整数::longValue)
.sum();
long longSum=longs.stream()
.mapToLong(Long::longValue)
.sum();
double doublesSum=doubles.stream()
.mapToDouble(双精度::双精度值)
.sum();
double floatsSum=floats.stream()
.mapToDouble(Float::doubleValue)
.sum();
System.out.println(String.format(
“整数:%s,长:%s,双精度:%s,浮点:%s”,
intSum、longSum、doublesSum、floatsSum);
15,15,15.5,15.5

试试这个

----
public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
     sum = sum +(double) m.get(i);
    }
    return sum;
}
----
公共双保险公司()
{
双和=0;
对于(int i=0;i
如何
sum+=m.get(i)
?提示:要从指定位置的列表中获取值,可以使用
m.get(indexOfPosition)
。或者,创建一个foreach循环并将sum添加到foreach中的每个元素。或者,对于int版本,使用:java8,int sum=list.stream().mapToInt(Integer::intValue).sum();这个问题应该重新讨论。它是有效的、具体的和有用的。查看问题和答案的投票结果。查看正在添加的有关将Java Streams用于函数解决方案的更新信息。或者使用:Java 8 int sum=list.stream().mapToInt(Integer::intValue.sum()@AnandVarkeyPhilips那就像用核武器杀死苍蝇:你认为这是为什么??它是否会导致性能下降??我希望代码更少、更干净@AnandVarkeyPhilips Barranka评论末尾的
:P
表示她/他在开玩笑,或半开玩笑。瞧:舌头伸出来,厚颜无耻/顽皮,吹着覆盆子。@AnandVarkeyPhilips我无意冒犯你,我也不认为你的解决方案是错误的。你的答案是正确的,我只是在开玩笑(感谢BasilBourque指出了这一点),其中a是什么?
a->a
是一个lambda函数。箭头前面是参数列表(a),箭头后面是函数体(a)。这大致相当于
double identity(double a){return a}
我总是对我的项目负责人这么说。:)
    List<Integer> ints = Arrays.asList(1, 2, 3, 4, 5);
    List<Long> longs = Arrays.asList(1L, 2L, 3L, 4L, 5L);
    List<Double> doubles = Arrays.asList(1.2d, 2.3d, 3.0d, 4.0d, 5.0d);
    List<Float> floats = Arrays.asList(1.3f, 2.2f, 3.0f, 4.0f, 5.0f);

    long intSum = ints.stream()
            .mapToLong(Integer::longValue)
            .sum();

    long longSum = longs.stream()
            .mapToLong(Long::longValue)
            .sum();

    double doublesSum = doubles.stream()
            .mapToDouble(Double::doubleValue)
            .sum();

    double floatsSum = floats.stream()
            .mapToDouble(Float::doubleValue)
            .sum();

    System.out.println(String.format(
            "Integers: %s, Longs: %s, Doubles: %s, Floats: %s",
            intSum, longSum, doublesSum, floatsSum));
----
public double incassoMargherita()
{
    double sum = 0;
    for(int i = 0; i < m.size(); i++)
    {
     sum = sum +(double) m.get(i);
    }
    return sum;
}