-2

元のリストの累計を含む新しい ArrayList を返す runningTotal メソッドがあります。つまり、新しいリストの i 番目の値は、元のリストの 0 から i までの要素の合計を格納する必要があります。たとえば、変数リストに次の一連の値が格納されているとします。

[2, 3, 5, 4, 7, 15, 20, 7] そして、次の呼び出しが行われます。

System.out.println(runningTotal(list)); 次に、変数リストに次の一連の値を格納する必要があります。

[2、5、10、14、21、36、56、63]。

私は間違っていることを知っている方法を書いています.しかし、私は自分でそれを解決するためのヒントを探しています.これが私のコードです.ヒントを提供してください.完全な解決策を教えてください.

    public static List<Integer> runningTotal(List<Integer> list)
    {
        List<Integer> list2=new ArrayList<Integer>();
        //int sum=0;
        for(int i=0;i<list2.size();i++)
            list2.add(list2.get(i)+list.get(i+1));
        return list2;
    }
4

2 に答える 2

1

新しいリストは空です。

それに何かを追加する必要があります。リストにまだ存在しないインデックスを設定することはできません。

于 2013-10-24T02:41:41.457 に答える
1

あなたが完全なソースを提供しないと言ったように、私はあなたに小さなヒントを与えています:)

  • 汎用リストを使用

リスト list1=new ArrayList();

  • 追加する最初の要素は2番目のリストからのものであるため、最初の反復のif条件を作成し、最初の要素を新しいリストに直接追加するだけです。

list2.add(list2.get(i)+list.get(i+1));

  • SLaksが言ったように、新しいリストでSETを使用することはできません。追加を使用してください。

このコードを試してください

public static List<Integer> runningTotal(List<Integer> list)
{
    List<Integer> list2=new ArrayList<Integer>();
    int sum=0;
    for(Integer num:list){
       sum+=num;
      list2.add(sum);
    }
    return list2;
}
于 2013-10-24T03:02:29.933 に答える