sokrates
Goto Top

Array-Inhalte untereinander austauschen

Hallo,

kann mir vielleicht einer sagen, wie ich die Werte zweier Felder vertauschen kann?

Beispiel:
Feld = 25;
Feld[1] = 18;

Wie gebe ich nun den Wert von Feld Feld[1] und umgekehrt?

X

Content-ID: 124443

Url: https://administrator.de/contentid/124443

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

H41mSh1C0R
H41mSh1C0R 08.09.2009 um 11:44:15 Uhr
Goto Top
Du hast hier 1 Array und nicht 2, sondern 2 Feldpositionen EINES Arrays.

Nun kannst du wenn es nur um das tauschen von 2 Stellen geht, eine Hilfsvariable nutzen.

Hilfvariable XYZ

Feld --> XYZ
Feld[1] --> Feld
XYZ --> Feld[1]

Alternativ kannst du das auch Array intern machen.


Feld --> Feld[2]
Feld[1] --> Feld
Feld[2] --> Feld[1]

Nur der Sinn des Array ist kaum gegeben, wenn man das Array nur mit 1-2 Positionen benutzt.

Willst du wirklich den Inhalt GANZER Arrays tauschen kannst du das Analog tun mit einem Hilfsarray.

Ein gänzlich anderer Weg wäre das benutzen von Zeigern. Nur dumm das es in Java keine Zeiger gibt. ^^
BCCray
BCCray 08.09.2009 um 11:49:01 Uhr
Goto Top
Hallo XSkater


ich würd (in diesem Fall) einfach den Wert von "0" irgendwo zwischenspeichern, den Wert "0" dann mit den Wert "1" überschreiben, und den Wert "1" dann mit den temporären Wert überschreiben.

Ansonten empfehle ich: JAVA API - Arrays


Mist zu langsam face-smile

Wenn du die Zahlen sortieren willst, dann kannst du das mittels verschiedener Algorithmen machen (BubbleSort, QuickSort, etc)
Sokrates
Sokrates 08.09.2009 um 12:39:35 Uhr
Goto Top
Zitat von @H41mSh1C0R:
Nur der Sinn des Array ist kaum gegeben, wenn man das Array nur mit
1-2 Positionen benutzt.
Es sind nicht 1-2 Positionen, sondern in dem Fall hier 20, wobei ich halt nur einmal tauschen muss ;)

X
Sokrates
Sokrates 08.09.2009 um 12:40:49 Uhr
Goto Top
Zitat von @BCCray:
Wenn du die Zahlen sortieren willst, dann kannst du das mittels
verschiedener Algorithmen machen (BubbleSort, QuickSort, etc)

Mit Sortieren meinst du jetzt glaube ich nach Größe etc.?
Kann man auch selbst bestimmen, womit man anfängt? (Also klein nach groß oder groß nach klein)

X
Sokrates
Sokrates 08.09.2009 um 12:55:32 Uhr
Goto Top
Zitat von @H41mSh1C0R:
Feld --> Feld[2]
Feld[1] --> Feld
Feld[2] --> Feld[1]

habe das jetzt mal probiert (auch mit der Hilfsvariable) und bei beiden hatte ich den selben Fehler.
Ich denke es ist ein kleiner Anfängerfehler von mir, jedoch komme ich da trotzdem nicht drauf.

Wenn ich nun die Arrays ausgebe, dann haben Feld und Feld[1] beide den Wert, den vorher Feld[2] hatte.
Was mache ich da falsch?

X
BCCray
BCCray 08.09.2009 um 12:55:47 Uhr
Goto Top
Genau nach Größe.

Wie du die Sortierung machst, hängt von deinem Algoritmus ab, den du halt selbst implementieren musst.

Hilfe bietet hierbei jedes gute Java-Buch oder auch Google face-smile
oder du folgst diesem Link Sortieren
Sokrates
Sokrates 08.09.2009 um 13:02:44 Uhr
Goto Top
Ich habe jetzt mal eine etwas andere Methode angewendet, die anscheinend auch bei Arrays funktioniert.
Das hatte ich vorher nur bei integer-Variablen gemacht.

Feld = Feld + Feld[1];
Feld[1] = Feld - Feld[1];
Feld = Feld - Feld[1];

Funktioniert jetzt wie gewollt.

Wieso funktioniert das mit der Hilfsvariable bzw. Array intern jedoch nicht?

X
H41mSh1C0R
H41mSh1C0R 08.09.2009 um 13:17:25 Uhr
Goto Top
Das mit der Hilfsvariablen funktioniert.

Ich schreibe hier nur keine fertigen Quelltexte, sondern das Ganze wird abstrakt formuliert.

Die Implementierung ist das woran du lernst. ^^

Aber so richtig schwer ist das doch nicht zu verstehen oder?

Variable1 --in--> Hilfvariable speichern
Variable2 --in--> Variable1 speichern
Hilfsvariable --in--> Variable2 speichern

Wenn du nun Arrays benutzt mit mehr als 3 Feldpositionen, ist erstmal die Frage welche Feldpositionen willst du miteinander tauschen?

Wenn du das weißt, kannst du dem Feld um 1 Feldposition größer machen und das ist dann deine Hilfvariable. Danach verfährst du analog zu dem was oben steht.

{
Feld[zu tauschende Feldposition1] --in--> Feld[letzte Feldposition] speichern
Feld[zu tauschende Feldposition2] --in--> Feld[zu tauschende Feldposition1] speichern
Feld[letzte Feldposition] --in--> Feld[zu tauschende Feldposition2] speichern
}
wiederhole solange bis nix mehr zu tauschen ist
Sokrates
Sokrates 08.09.2009 um 13:20:50 Uhr
Goto Top
Das ist ja auch nicht schwer zu verstehen, jedoch bekomme ich mit der Hilfsvariable dann bei beiden Arrays die gleichen Werte, wenn ich der Variable vorher keinen festen Wert gebe.
Gebe ich ihr einen Wert, wird dieser nicht überschrieben und beide Felder bekommen den jeweiligen zugewiesen.

X
Sokrates
Sokrates 08.09.2009 um 13:21:08 Uhr
Goto Top
Zitat von @BCCray:
Genau nach Größe.

Wie du die Sortierung machst, hängt von deinem Algoritmus ab,
den du halt selbst implementieren musst.

Hilfe bietet hierbei jedes gute Java-Buch oder auch Google face-smile
oder du folgst diesem Link
Sortieren

Danke face-smile

X
H41mSh1C0R
H41mSh1C0R 08.09.2009 um 13:36:57 Uhr
Goto Top
poste doch mal etwas quelltext von dir, vielleicht ist es ja nur eine kleinigkeit, aber so allein mit meiner verstaubten Glaskugel komm ich da auch nicht weiter, bei dem was du uns an informationen gibst.