Listenoperationen

Status
Nicht offen für weitere Antworten.

Ete

Mitglied
Hallo Leute habe eine Frage.

Ich habe 2 Listen mit beliebig vielen Elementen:
List<Short> l1 = new List<Short>();

List<Short> l2 = new List<Short>();

die Elemente sehen z.B. so aus:
short z = Short.parseShort(line[0].substring(0,4));

short z1 = Short.parseShort(line[0].substring(4,6));

short z2 = Short.parseShort(line[0].substring(7,11));

jede Liste stellt eine aufgesplittete, aus einer txt. Datei eingelesene Zahl dar:

Jetzt will ich 4 Methoden schreiben
zum addieren,
subtrahieren,
vergleichen ob die Zahlen gleich sind
und ob die eine Zahl kleiner als die andere ist.

Ich weiß dass ich zum vergleichen compareTo() nehmen kann.
Ich weiß nur nicht wie die Syntax bei Listen ist.

Und kann ich einfach machen:
public void addiere(List x) {
l1 + l2;
}

Wäre euch echt dankbar
 
B

bygones

Gast
willst du einzelne werte der liste addieren oder was ?
die gesamte listen verlgeichen oder auch nur einzelne elemente daher ?

btw. new List geht nicht... List ist ein Interface und kann nicht instanziert werden
 

Ete

Mitglied
Ich habe eine eigene Klasse "List" geschrieben

ich möchte die ganze Liste vergleichen und addieren,
weil ja eine komplette Liste eine eingelesene Zahl darstellt
 
B

bygones

Gast
oeh...

hat deine Liste Klasse irgendwas mit dem List interface zu tun ? also speicherst du eine reihe von shorts ?

das wuerde heissen du hast z.b.
[1111, 2222, 3333, 4444]
[5555, 6666, 7777, 8888]

warum kannst du nicht eine vorhandene Liste nehmen (ArrayList, LinkedList usw) ?
 
S

SlaterB

Gast
Listen kann man nicht im ganzen addieren, wenn du es nicht explizit selber programmierst

deswegen schreibe dir die Addition:

for (index < length) {
x = list1(index)+list2(index)
in neue Liste einfügen
}
 

Ete

Mitglied
was nicht geht, wie ich schon erwähnt dürfen die Elemente nur vom typ short sein!
was hätte es alse für einen sinn sie in eine neue liste die größer ist zu speichern
 
S

SlaterB

Gast
> was hätte es alse für einen sinn sie in eine neue liste die größer ist zu speichern

?
du willst sie doch addieren, nicht ich ;)

-------

wie du siehst weiß noch niemand so genau was du eigentlich willst,
gib doch mal ein Beispiel von zwei Listen und die gewünschte Ergebnisliste,
dann kann ich dir die Rechenoperationen nennen, die dazu führen,
einen goldenen vorgegebenen Knopf gibts jedenfalls nicht, soviel steht schon fest
 

Ete

Mitglied
l1 = {"4321" -> "8765" -> "109"} ist die zahl: 10987654321
l2 = {"8765" -> "4321"} ist die zahl: 12345678

ergeben solls 10999999999
 
S

SlaterB

Gast
simpel und anfängerfreundlich:
Teilzahlen von l1 zu einer Zahl zusammenfassen
Teilzahlen von l2 zu einer Zahl zusammenfassen

Gesamtzahlen addieren (falls man das denn kann, wenns größer als Zahlenbereich long oder BigInteger ist, dann hat man das gleiche Problem ;) )
und wieder auf eine Liste aufteilen

-------------

direkter:
die letzten Elemente pro Liste addieren,
aaaaa + bbbb = yxxxx evtuell mit Übertrag y und 4 Ziffern xxxx

xxxx in neuer Liste speichern, y merken für die Addition der vorletzten Elemente pro Liste,
usw.

Spezialfälle wie unterschiedlich lange Listen berücksichtigen
 
B

bygones

Gast
ich hoffe mal das ist eine dieser beruehmten aufgaben von uni oder sonstigem... denn 1

l1 = {"4321" -> "8765" -> "109"} ist die zahl: 10987654321

so einzulesen bzw so darzustellen ist weniger sinnvoll
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben