如何在arraylist上使用自己的方法?

时间:2015-03-05 21:33:29

标签: java arraylist

public static void arrayReader(Fractions[] array)
    {
        System.out.println("This array has " + array.length + " elements");
        for(int count = 0; count < array.length; count++)
        {
            System.out.println("For cell number " + (count+1));
            array[count] = new Fractions();
            array[count].read();
        }

这是我写的代码的一部分。除了使用ArrayList而不是数组之外,我被告知要做同样的事情。所以我遇到了一个问题。我怎么能做数组[count] .read();

我试过了,但它不会起作用:

public static void readArray(ArrayList<Fractions> array)
    {
        System.out.println("This array has " + array.size() + " elements");
        for(int count = 0; count < array.size(); count++)
        {
            Fractions fraction = new Fractions();
            fraction.read();
            array.set(count, new Fractions());
            array.add(fraction);
        }
    }

我不想让你做我的作业,我真的被困了。所以请帮助我理解这是如何工作的。

2 个答案:

答案 0 :(得分:0)

您可以使用

array.add(count, new Fractions());

上面的行等同于上一代码中的以下行

array[count] = new Fractions();

即在ArrayList中的特定索引处添加新的Fractions()。

同样适用于其他行

array[count].read();

你会有

(array.get(count)).read();

答案 1 :(得分:0)

首先:

 array[count] = new Fractions();

不等同于:

 array.set(count, new Fractions());
 array.add(fraction);

arraylist.set方法:

Replaces the element at the specified position in this list
 with the specified element.

arrayList.add方法:

Appends the specified element to the end of this list.

仅限使用

array.add(fraction);

然后for循环不同

如果你在做:

array = new ArrayList(5); //initial capacity

 for(int count = 0; count < array.size(); count++)

大小为0.

如果你这样做:

array = new Fractions[5]; //size

 for(int count = 0; count < array.size(); count++)

大小为5