java - 以 ArrayList 作为参数相乘列表元素的方法

标签 java arraylist

product() 方法将 ArrayList 的元素相乘并返回整数“n”,它是这些元素的乘积。在类 Test() 中,调用方法 Product(),该方法对名为“lis”的 ArrayList 进行操作,并打印值“n”。

import MathBasic.SimpFraction;
import java.util.ArrayList;

public class Test {

public static void main(String[] args) {

    ArrayList<Integer> lis = new ArrayList<>();

    for (int i=1;i<=6;i++){
        lis.add(i);
    }

    int result = SimpFraction.product(lis);

    System.out.println(result);
    }
}
<小时/>
//mathbasic package

package MathBasic;

import java.util.ArrayList;

public class SimpFraction {
    public static  int product (ArrayList<Integer> m){
        int n = 1;
        for (int i = 0; i <= m.size(); i++) 
           n = n*m.get(i);
        return n;
    }
}
<小时/>

编译代码时,会生成以下错误:

run:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 6, Size: 6
    at java.util.ArrayList.rangeCheck(ArrayList.java:653)
    at java.util.ArrayList.get(ArrayList.java:429)
    at MathBasic.SimpFraction.product(SimpFraction.java:94)
    at cubicequationTest.main(cubicequationTest.java:32)
C:\(...)\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)

最佳答案

您循环正确。

public class SimpFraction {
    public static  int product (ArrayList<Integer> m){
        int n = 1;
        for (int i = 0; i <= m.size(); i++)//this is incorrect 
           n = n*m.get(i);
        return n;
    }
}

上面的代码让您从 0, 1, 2, 3, 4, 5, 6 开始循环。有7当列表大小仅为 6 时,总增量

因为任何列表的第一个索引都是 0 ,还有你的int i = 0你应该改变<=<

像这样

for (int i = 0; i < m.size(); i++)//this is correct

这将循环0, 1, 2, 3, 4 , 5并且不要超过索引总数

关于java - 以 ArrayList 作为参数相乘列表元素的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37287310/

相关文章:

java - 另一个 MYSQL 问题

java - 求和面积表(积分图像)在矩形和上返回无意义的内容

Java Apache POI Tab 停止词文档

java - 如何避免 arraylist 中的索引 out p 绑定(bind)异常

java - (Java) 删除 ArrayList 元素会在内存中腾出更多空间吗?

java - 如何在 JavaScript 中使用 struts taglib 标签

java - Java 验证码不正确

java - 子类的ArrayList不能赋值给父类(super class)的ArrayList

java - 为什么我不能将 SparseArray 转换为数组?

java - 如何在 Object 类中创建 Next() 方法