Sortieren, überschreiben von Variablen?

Status
Nicht offen für weitere Antworten.
K

KliM

Gast
Hallo,

habe soeben meine ersten Versuche mit dem Sortieren durchgeführt. Zwei
Sortiervorgänge sind mir spontan eingefallen. Um das Tauschen der
Feldinhalte aber nur einmal erstellen zu müssen, wollte ich folgendes
verwenden:
Code:
/**
     * Methode um die Inhalte der beiden Variablen zu tauschen
     * @param _iVar1: Inhalt des linken Feldes
     * @param _iVar2: Inhalt des rechten Feldes
     */
    private static void inhalteTauschen (int _iVar1, int _iVar2)
    {
         int iTemp = _iVar1;
         _iVar1 = _iVar2;
         _iVar2 = iTemp;
    }
...
    private static void sortierAlgorithmus1 (int[]_iBuffer)
    {
...
              inhalteTauschen (_iBuffer[iLaufVariable],
_iBuffer[iLaufVariable2]);
...
    }

Nach Rückkehr aus der Methode inhalteTauschen hat sich in den Werten des
Feldes _iBuffer aber nichts geändert.
Aus der C++-Welt kommend dachte ich mir, dass die Werte - im Sinne von
I/O-Parametern - als Referenz übergeben werden müssen (int & _iVar1...).
Dies ist aber bei Java nicht möglich.

Zudem würde mich interessieren, welchen Zeitverbrauch die Vorgehensweisen
haben.
Wie läßt sich unter Java die Systemzeit ermitteln, bzw. die Differenz
zwischen zwei Zeitpunkten ausgeben?

Danke und viele Grüße
 

mattulla

Bekanntes Mitglied
Hallo,

hab keine Ahnung warum du von Hand sortieren willst, es gibt fuer Java schon fertige Datenstrukturen welche das fuer dich uebernehmen. Schau vll mal hier nach!

Gruesse
mattulla
 
K

KliM

Gast
mattulla hat gesagt.:
Hallo,

hab keine Ahnung warum du von Hand sortieren willst, es gibt fuer Java schon fertige Datenstrukturen welche das fuer dich uebernehmen. Schau vll mal hier nach!

Gruesse
mattulla

Ich wollte das mal einfach ausprobieren. Mir geht es vor allem um das Verständniss der Wertüberschreibung bei Variablen.
 

mattulla

Bekanntes Mitglied
hmm ja ok.....also in Java lassen sich keine Objecte / Variablen callByReference uebergeben, alles wird CallByValue uebergeben.
Die aktuelle Zeit kannst du dir mit System.currentTimeMillis() holen und dann die Differenz von zwei Zeiten bilden.

Gruesse
mattulla

EDIT: Sorry Redfrettchen hat natuerlich recht was die Objecte angeht.....war da wohl etwas zu schneller mit tippen wie mit den Gedanken
 

Redfrettchen

Bekanntes Mitglied
Hi,
also erstmal an mattulla: Für den praktischen Gebrauch wird man nicht sein selbstgeschriebenes BottomUp-HeapSort oder seinen AVL-Baum benutzen, sondern sich anderweitig bedienen (entweder bei den Sachen von SUN oder bei Leuten, die das besser können). Aber zum Verstehen von dem, was man da in die Tastatur hämmert, vor allem bezüglich dessen Effizienz und Anwendung von erworbenen Wissen auf andere Probleme, beschäftigt man sich mit Sortieralgorithmen und Datenstrukturen (jeder Informatikkurs macht das).
So, nun zu KliM.
Primitive Datentypen wie int, byte, short, char, boolean, double, float und long werden in Java by-Value zurückgegeben, Objekte (also praktisch alles andere) by-Reference. Deine Tauschmethode musst du also dementsprechend umbauen. Dir geht es ja vordergründig um das Tauschen von Arrayelementen, also wäre es doch schöner, wenn die Methode swap (oder inhalteTauschen) gar nichts so genau mit den Werten arbeiten müsste. Ich geb dir mal das vor:
Code:
public static void swap(int[] array, int i, int j) {
...
}
Ich glaube, dass du die Methode schon mit Leben füllen kannst.

Zeitmessen mach man mit System.nanoTime() (wenn du unter 1.5 arbeitest) oder System.currentTimeMillis(), die erste Methode gibt die Systemzeit in Nanosekunden, die zweite in Millisekunden wieder (als long jeweils). Du musst die zu messenden Codestücke als nur mit zwei Zeitmessungen einschließen und die Differenz bilden.

Ich hoffe ich konnte dir weiterhelfen!

EDIT: ok, zweiter ^^
 

Redfrettchen

Bekanntes Mitglied
Ja, ok, ich habs kapiert.
Es gibt zwar offensichtlich einen Unterschied zwischen
Code:
public void methode1(int a) {
....
}

und

public void methode2(Object a) {
...
}

bezüglich dessen, was passiert, wenn in der Methode a "geändert" wird.
Ja klar, der Unterschied ist insofern keiner, als dass a=neuerWert in beiden Methoden nichts am ursprünglichen Objekt verändert, weil die gekapselte Referenz (oder wie nennt man das?) der Methode einfach umgebogen wurde auf den neuen Wert. Und int hat ja auch keine den Wert verändernden Methoden.
 

Leroy42

Top Contributor
Redfrettchen hat gesagt.:
Ich hab das unter Call-by-Reference kennengelernt.
Dann hast du es eben falsch kennengelernt. Es ist wie alle Java-Parameterübergaben
call-by-value. Mal wird ein int kopiert, mal wird eine Referenz kopiert,
deathbyaclown hat gesagt.:
FAQs lesen - beides heißt in Java call-by-value
Beides ist call-by-value. Nicht nur in Java sondern in allen Sprachen wie
Algol68, Pascal, C/C++, ...
Redfrettchen hat gesagt.:
Ja, ok, ich habs kapiert.
Es gibt zwar offensichtlich einen Unterschied bezüglich dessen, was passiert, wenn in
der Methode a "geändert" wird. Ja klar, der Unterschied ist insofern keiner...
:shock:
Redfrettchen hat gesagt.:
weil die gekapselte Referenz (oder wie nennt man das?) der Methode einfach
umgebogen wurde auf den neuen Wert

Es gibt weder gekapselte Referenzen noch wird irgend etwas umgebogen.

Code:
void x(int a) {a = 42;}
Der Wert 42 (ein int) wird in die lokale Variable kopiert.

Code:
void y(String s) {s = "42";}
Der Wert "42" (eine Referenz auf einen String) wird in die lokale Variable kopiert.

Im übrigen kennt das alte Kernighan/Richie-C auch kein call-by-reference.
Dort wird mittels &variable eben die Adresse der Variable bestimmt und
per call-by-value übergeben.
 

Redfrettchen

Bekanntes Mitglied
grr
Natürlich wird die Referenz umgebogen, ich meine damit, dass die der Variablen eine neue Referenz zugeordnet wird (bildlich wird für mich da eben ein Pfeil gebogen, tut mir leid wenn ich damit die Weltordnung zerstört habe/nicht mit ihr im Einklang stehe). Und mit "gekapselt" meine ich, dass die Methode diese Referenz selbst hält und sie nichts mit der Referenz außerhalb zu tun hat.
Und außerdem stand da, dass ichs eingesehen habe. x.x
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
B Liste sortieren? Java Basics - Anfänger-Themen 4
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Sortieren Java Basics - Anfänger-Themen 21
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
H Strings vergleichen & sortieren Java Basics - Anfänger-Themen 20
J Ungewolltes Sortieren eines Arrays Java Basics - Anfänger-Themen 4
T Collections Sortieren von Automodellen (v.a. BMW und Mercedes) Java Basics - Anfänger-Themen 3
P Liste sortieren verschiedener generischer Typen Java Basics - Anfänger-Themen 4
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17
K Probleme mit Sortieren und dem Zählen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben