Java 方法中ArrayList的和

Java 方法中ArrayList的和,java,arraylist,Java,Arraylist,我不熟悉编码。我的任务是获取播放列表中所有曲目的总持续时间(秒)。另一个类中有一个名为getDur的访问器方法。还有一个toString方法,它将所有内容转换为秒。这是我的密码 private ArrayList<Track> tracksN; public int getDurTotal() { for (Track b: tracksN) { int sum = 0; for (int i=0; i<tracksN.size

我不熟悉编码。我的任务是获取播放列表中所有曲目的总持续时间(秒)。另一个类中有一个名为getDur的访问器方法。还有一个toString方法,它将所有内容转换为秒。这是我的密码

private ArrayList<Track> tracksN;

public int getDurTotal()
{
    for (Track b: tracksN)
    {
        int sum = 0;
        for (int i=0; i<tracksN.size();i++)
        {
            sum += tracks.get(getDur(i));
        }
    }
    return sum;
}   
private ArrayList tracksN;
公共整数getDurTotal()
{
用于(轨道b:轨道SN)
{
整数和=0;

对于(int i=0;i您需要从列表中获取曲目,然后调用
getDur
。尝试以下操作:

private ArrayList<Track> tracksN;

public int getDurTotal()
{
    for (Track b: tracksN)
    {
        int sum = 0;
        for (int i=0; i<tracksN.size();i++)
        {
            sum += getDur(tracks.get(i));
        }
    }
    return sum;
} 
private ArrayList tracksN;
公共整数getDurTotal()
{
用于(轨道b:轨道SN)
{
整数和=0;

对于(int i=0;i此问题的答案在错误本身中;请重新阅读。播放列表无法应用于给定类型。必需:无参数

意思是你用参数
i
调用了
getDur(i)

但是如果您可以滚动代码并找到方法
getDur
,则不需要任何参数

我打赌它看起来像是
getDur(){
之类的东西,我假设它的返回类型是
int


因此,如果您可以为您的类显示代码
播放列表
,也许有人可以帮助您正确地实现代码。

您的代码将在曲目列表上迭代两次。需要执行其中一个for循环。或者:

int sum = 0;
for (int i = 0; i < tracksN.size(); i++) {
   Track track = tracksN.get(i);
   sum += track.getDur();
}

在这两种方法中,第二种方法更好,因为它可以正确地(以良好的性能)处理所有列表类型,而不仅仅是ArrayList。它也更简单。

您只需要为循环使用一种方法

int sum = 0;
for (Track track : tracksN)
{
  sum += track.getDur();
}
return sum;

我认为这是Java,而不是
javascript
您想要计算一个和。但是,在for循环中,sum变量被声明并设置为0。因此在每次迭代时它都被设置为0。您想要添加到和中的是当前轨迹的持续时间。当前轨迹在变量中(非常糟糕)命名为
b
。在for循环中没有看到for循环。一个循环就足够了:对于曲目列表中的每个当前机架,将当前曲目的持续时间相加。欢迎使用编码!提示:如果您拼出整个单词,而不是中途停止,通常更容易理解您所写的内容-例如,“持续时间”而不是“dur”。
int sum = 0;
for (Track track : tracksN)
{
  sum += track.getDur();
}
return sum;