ArrayList <double>理解

时间:2017-04-19 17:11:18

标签: java arraylist double

我正在ArrayLists上进行一个项目以及总和,标准偏差和方差等数学方法,我遇到了ArrayList<Double>

public static double Sum(ArrayList<Double> list) {
    double sum = 0;
    for (int i = 0; i < list.size(); i++) {
        sum = sum + list.get(i);
    }
    return sum;
}

我理解ArrayList是如何运作的,但我不确定这种方法发生了什么,有人能帮助我更好地理解它吗?

2 个答案:

答案 0 :(得分:1)

这些被称为Generics。 Oracle有一个很棒的tutorial on it

长话短说,如果你写List list = new ArrayList,那就意味着可以把任何东西放在那个列表中:玩具,食物,书籍。有点乱,是吧?我打赌你更喜欢的是只包含某些类型物品的盒子:一个玩具盒子,一个用于食物的盒子和一个用于书籍的盒子。这通常是泛型允许你做的事情。通过撰写List<Book> list = new ArrayList<>(),您说这个列表只能包含书籍。如果您尝试在其中放入其他内容,则会出现错误。

总而言之,在您的情况下,方法sum需要ArrayList<Double> - 一个只能包含Double个对象的列表。您可以确定所有元素都属于该类型,因此您无需检查。

答案 1 :(得分:0)

请注意:ArrayList<Double> list = new ArrayList<Double>();它会创建一个只能包含double值的列表。 double是一个可以包含整数和十进制数的变量类型。因此,创建这样的列表只允许程序将数字添加到列表中:list.add(4.3);

调用此方法时,必须将ArrayList<Double>对象传递给它:Sum(List);然后它会获取列表并将该列表的每个元素一起添加到名为sum的变量中。完成后,它将返回该总和。 return sum;

以下是这样做的:

  for (int i = 0; i < list.size(); i++) {
            sum = sum + list.get(i);
        }

其基本语法为for(initialization; condition; iteration)。首次调用时,它将执行初始化,只要条件为真,它就会继续重复,每次重复时都会执行迭代即可。

这个特定的变量创建一个名为i的变量,并为其初始化赋值0。然后,对于条件,它会i < list.size(),这意味着只要i中包含的整数值小于{{1}中的元素数量,它就会重复}。最后,对于迭代,它执行ArrayList,这将使每次线程循环时i++中包含的整数值更大。

因此,每次循环迭代时,我们的i将获得一个更大的值。在循环内部,我们有i。这将获取sum = sum + list.get(i);(十进制)变量double并将其添加到其当前值,无论包含在sum(记住i具有数字值)元素的ArrayList中。

点击此链接可详细了解i圈:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

因此,如果for包含值ArrayList{2, 4, 1, 5}包含值1,则调用i会将值sum = sum + list.get(i);添加到值包含在4中。如果sum等于i并且我们调用了0,则sum = sum + list.get(i)的值将增加2,并且会继续这样做。

这些被称为sum索引是用于访问数组或数组列表中对象的数字。如果我有一个看起来像这样的数组:indexes那么4的索引将是0,2的索引将是1,5&#39;索引将是2,而3&#39 ; s指数为3。

此图片可让您更好地了解索引:Image