mit List<Integer> rechnen

Status
Nicht offen für weitere Antworten.

Taramsis

Bekanntes Mitglied
Hi Leute,

ich hab eine Liste mit Zahlen gegeben, die durch irgendwelche Berechnungen entsteht.
Z.B.: integerList = [0 ,10 ,5 ,0 ,6 ,0 ,9 ,1 ,0 ,0]
Nun möchte ich, dass immer wenn zwei Zahlen, die größer null sind aufeinander folgen, folgendes gemacht wird:
integerListNeu = [0 ,10 ,15 ,0 ,6 ,0 ,9 ,10 ,0 ,0]

Sollten drei Zahlen oder mehr folgen analog:
integerList2 = [0 ,10 ,5 ,0 ,6 ,0 ,9 ,1 ,19 ,0]
integerList2Neu = [0 ,10 ,5 ,0 ,6 ,0 ,9 ,10 ,29 ,0]

Kann mir jemand Helfen , ich komm nicht dahinter;(
 
Hi,

also ich würd halt die Liste durchlaufen bis zu der Stelle wo ne Zahl größer ist als 0, dann prüfen ob die nächste Zahl ebenfalls größer als 0 ist und dann die beiden addieren, das dürfte nicht allzu schwer sein...

Hier mal ein paar Anregungen:

Java:
//Liste durchlaufen

//Werte auf > 0 prüfen, wenn ja dann Stell merken und prüfen ob der folgende auch > 0 ist

//Bei Ja, die beiden Werte addieren und die folgende Stelle mit set ersetzen

Alle Befehle die du dazu brauchst findest du hier

Muss jetzt leider los, deswegen hab ich mich etwas kurz gefasst..Viel Glück 🙂

Grüße
 
Pseudo:
int temp;
for(0....länge)
wenn temp == get(i): weiter
sonst:
temp = get(i);
temp adden.

EDIT:
ach...hab mir verlesen... völlig falsch...
 
Zuletzt bearbeitet:
Also eigentliche sollte
Java:
        for(int i=1; i<list.length;i++){
            if(list[i] > 0)
                list[i] = list[i-1] + list[i];
        }
das tun was du willst.

Bei deinem zweiten Beispiel bin ich mir nicht sicher.
Soll aus [0 ,10 ,5 ,0 ,6 ,0 ,9 ,1 ,19 ,0]
wirklich [0 ,10 ,5 ,0 ,6 ,0 ,9 ,10 ,29 ,0] werden?

...nicht [0 ,10 ,15 ,0 ,6 ,0 ,9 ,10 ,29 ,0]?

Oder soll einstellbar sein, ab wie vielen aufeinander folgenden nicht-0-Werten aufaddiert werden soll?
 
Bei deinem zweiten Beispiel bin ich mir nicht sicher.
Soll aus [0 ,10 ,5 ,0 ,6 ,0 ,9 ,1 ,19 ,0]
wirklich [0 ,10 ,5 ,0 ,6 ,0 ,9 ,10 ,29 ,0] werden?

...nicht [0 ,10 ,15 ,0 ,6 ,0 ,9 ,10 ,29 ,0]?

Oder soll einstellbar sein, ab wie vielen aufeinander folgenden nicht-0-Werten aufaddiert werden soll?

genau das hatte ich mich auch gefragt, bzw gewundert.
also aus seiner beschreibung, würde ich jetzt 2 fälle unterscheiden? ???:L
 
Zuletzt bearbeitet:
Sorry Leute !!

es sollte im zweiten Bsp. natürlich : [0 ,10 ,15 ,0 ,6 ,0 ,9 ,10 ,29 ,0] sein!
Wie würde man dies machen?
 
so vllt?
Java:
//Liste
        List<Integer> list = new LinkedList<Integer>();
		list.add(0);list.add(10);list.add(5);list.add(0);list.add(6);
		list.add(0);list.add(9);list.add(1);list.add(19);list.add(0);

		
		int tmp = 0;
		for (int i = 0; i < list.size(); i++) {
			if (list.get(i) != 0) {
				if (tmp == 0) {
					tmp = list.get(i);
				} else {
					tmp += list.get(i);
					list.set(i, tmp);
				}
			} else {
				tmp = 0;
			}
		}
		
		//Ausgabe:
		for (int i = 0; i < list.size(); i++) {
			System.out.print(list.get(i) + " | ");
		}
 
Hi,

danke erstmal! Wie würde man denn vorgehen, wenn es beliebig viele folgen von nicht null gäbe.
Ich hab einen Ansatz mit listen:

Java:
for (int i = 0; i < arryList1.size(); i++) {
            if(arryList1.get(i) == 0){
                arryList2.add(i);
            }
            else if(arryList1.get(i) != 0 && arryList1.get(i-1) == 0){
                arryList2.add(i);
            }
            else if(arryList1.get(i) != 0 && arryList1.get(i-1) != 0){
                arryList2.add(arryList1.get(i) + arryList1.get(i+1));
            }
            

        }
Aber weiß nett weiter!!
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben