2016-12-01 3 views
-1

Ich bin neu mit Java, ich arbeite hauptsächlich mit C++ und gerade jetzt habe ich einige Schwierigkeiten, alle vorherigen Zahlen des aktuellen Index in einem Array zu summieren. danke für Ihre Hilfe :).Wie summiere ich den aktuellen Index mit allen vorherigen Zahlen in einer Arraylist?

public StaticStack<Integer> sumPrev(DoublyLinkedList<Integer> list, StaticStack<Integer> stack, int i){ 
    if(i < list.numElements()){ 
     stack.push(lista.get(i)); 
     i++; 
     return sumPrev(listaD, pilhaS, i); 
    } 

    return stack; 

} 

, was ich brauche, ist lista.get zu bekommen (i) plus alle vorherigen Zahlen in Liste. Sorry für mein Englisch, lerne immer noch :(

+2

Entfernen Sie die 'Stack', return ein 'int'. Wie' return (i> 0)? list.get (i) + sumPrev (liste, i - 1): list.get (0); 'und eine' List' ist kein Array. –

Antwort

0

habe gerade herausgefunden, wie es geht und hier ist es, wie:

public StaticStack<Integer> sum(DoublyLinkedList<Integer> list, StaticStack<Integer> stack, int i, int sum){ 
    if(i < list.numElements()){ 
     if(i == 0){ 
      stack.push(listaD.get(i)); 
      sum = list.get(i); 
      i++; 
      return acum(list, stack, i, sum); 
     } 
     else{ 
      stack.push(list.get(i) + sum); 
      sum = sum + list.get(i); 
      i++; 
      return acum(list, stack, i, sum); 
     } 
    } 

    return stack; 

} 
0

das ist, was Sie wollen:

List<Integer> list = IntList.range(1, 10).toList(); 
List<Integer> sumList = new ArrayList<>(); 
int sum = 0; 

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

System.out.println(list); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 
System.out.println(sumList); // [1, 3, 6, 10, 15, 21, 28, 36, 45] 
Verwandte Themen