Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Java » ZAHLEN VERTAUSCHEN IN EINEM FELD

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
30.11.2005, 20:47 Uhr
~Tom24
Gast


hi..

wie kann ich den Inhalt des Feldes vertauschen..


int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8 }

z.b in

int array[] = { 1, 2, 0, 8, 4, 7, 5, 6, 3 }

Gibt es da eine Methode?


Vielen Dank
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
30.11.2005, 22:04 Uhr
KaraHead



Ohne es zu testen würde ich es so probieren:

C++:
int[] arr1 = {1,2,3};
int[] tmp = null;
int[] arr2 = {3,2,1};

tmp = arr1;
arr1 = arr2;
arr2 = tmp;



In Java sind arr1 bzw. arr2 nur Referenzen auf einen Speicherplatz im Heap.
Somit können meines Wissen die Referenzen/Controller getauscht werden ohne das Objekt im HEAP zu ändern.

Dieser Post wurde am 30.11.2005 um 22:07 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
30.11.2005, 22:40 Uhr
J-jayz-Z
Perl Crack ala Carte
(Operator)


oder ne schleife bauen und per zufallszahl den Index/Wert tauschen.
Es gab da auch mal was in java, wie hieß das gleich ... array.copy oder so, da konnte man auch einzelne Indexe verschieben ?!
--
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="66756e2d736f66742e6465"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
30.11.2005, 22:41 Uhr
~Tom24
Gast


ich möchte aber das dies vertauschen durch zufallsprinzip passiert...

da gibt es shuffle oderso...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
30.11.2005, 22:51 Uhr
KaraHead



Huch, das kommt davon wenn man den Post nur überfliegt
Hab offenbar das vertauschen falsch verstanden

Naja hier die Funktion:

C++:
Collections.shuffle(List<?> list);



Anwenden kann man es so:

C++:
int[] arr = {1,2,3,4};
Collections.shuffle(Array.asList(arr)); //arr muss erst noch in eine List umgewandelt werden



Hoffe das es diesmal das ist was du suchst

Dieser Post wurde am 30.11.2005 um 22:53 Uhr von KaraHead editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
30.11.2005, 22:59 Uhr
~Tom24
Gast


kannst du mir bitte nochmal erklären wie das mit der list ist.....

(arr muss erst noch in eine List umgewandelt werden)???

bin noch neu in der Java programmierung..... bin noch nicht so fit....



vielen dank...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.12.2005, 14:13 Uhr
KaraHead



Hmm, ich bin zwar nicht so gut in Sachen erklären, aber ich versuch's mal trotzdem.

Also ein Array ist eine Ansammlung von Referenzen, die auf typgleiche Objekte zeigen.
Stell dir ein Array wie eine Komode vor. Das Array ist die Komode und die Schubladen sind die Referenzen.

C++:
int[] arr = {1,2,3}; //Komode
arr[0]; //Schublade
arr[1]; //Schublade
arr[n]; //Schublade



Da man aber bei Arrays viele Fehler machen kann, wie z.B. das Zugreiffen auf ein nicht vorhandenes Objekt, wurden Klassen wie ArrayList oder Vector implementiert.
Die machen das benutzen von Arrays bequemer.
Z.B. sind die Listen auf keine bestimmte größe begrenzt, wenn sie voll sind, dann wird einfach mehr
Speicherplatz allokiert. Jedenfalls solange genug Speicher da ist


Dein Bsp:

C++:
Collections.shuffle(List<?> list); //erwartet eine List als Parameter
//also wandelst du dein Array erst in eine List um und übergibst es dann


int[] arr = {1,2,3,4};
List meineList = Arrays.asList(arr); //erzeugt eine List aus dem Inhalt von arr

Collections.shuffle(meinList); //vertauscht alle Werte in meineList z.B. in {2,4,1,3}



Hoffe ist alles klar.
Ist alles spontan runtergeschrieben. Verbesserungen sind also erwünscht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.12.2005, 14:34 Uhr
~Tom24
Gast


Hi KaraHead!


Vielen Dank für die Erklärung...
ich habe das ,denke ich,verstanden....:-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
02.12.2005, 16:12 Uhr
~Tom 24
Gast


Das mit den Feldern vertauschen geht viel einfacher...
man kann es sehr gut selbst entwickeln ohne grosse mühe...
bin heute aber auch erst dahinter gekommen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
02.12.2005, 17:02 Uhr
KaraHead




Zitat von ~Tom 24:
Das mit den Feldern vertauschen geht viel einfacher...
man kann es sehr gut selbst entwickeln ohne grosse mühe...
bin heute aber auch erst dahinter gekommen...


Man kann so ziehmlich alles neu schreiben, vorrausgesetzt das Wissen über die Thematik stimmt.
Aber
1. Kann man nicht in jedem Themaa fit sein, da es einfach zu viele gibt
2. Warum soll man das Rad denn immer wieder erfinden? Sind nicht OOP-Sprachen darauf ausgelegt Sachen wiederzuverwenden.

Aber das soll dich nicht davon abhalten, man gewinnt meist Erfahrung wenn man Sachen nachprogrammiert. Sofern man die Zeit dazu hat

Viel Spaß.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Java ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: