1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Array wird ohne grund sortiert?!

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Agassiz, 02.10.2010.

  1. Agassiz, 02.10.2010 #1
    Agassiz

    Agassiz Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    7
    Registriert seit:
    11.06.2010
    Hi,

    habe hier ne ganz komische Sache am laufen.
    Und zwar habe ich ein Array.
    Dieses ist nicht sortiert.
    Dann wird folgende Methode aufgerufen (liegt in einer anderen Klasse):
    Code:
    public int[] distribution(float[] array, int counter) {
    
            float[] binned = array;
    
            [....]
    
            Arrays.sort(binned); 
    
            [....]
    
            
    Jedoch wird das array was übergeben wurde ebenfalls soriert. Warum?

    Ich habe mir das übergebene Array Vor und Nach dem Methodenaufruf ausgeben lassen.

    Davor : Unsortiert.
    Danach : Sortiert.


    Ich rühre das übergebene Array gar nicht an. Es wird ein neues Array erstellt und das übergebene wird kopiert.
    Aber warum habe ich diese komische/ungewollte ausgabe?
     
    Zuletzt bearbeitet: 02.10.2010
  2. Kranki, 02.10.2010 #2
    Kranki

    Kranki Ehrenmitglied

    Beiträge:
    3,831
    Erhaltene Danke:
    814
    Registriert seit:
    19.07.2009
    Tablet:
    Samsung Galaxy Tab 3 7.0 Lite
    Die Fehlannahme ist, dass das übergebene Array kopiert würde. Das ist nicht der Fall. Arrays sind Objekte in Java. Es wird also wie bei allen Objekten lediglich binned so gesetzt, dass das selbe Objekt referenziert wird wie in array.

    Java ist auch eine Insel – 3.7 Mit Referenzen arbeiten
     
  3. Agassiz, 02.10.2010 #3
    Agassiz

    Agassiz Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    46
    Erhaltene Danke:
    7
    Registriert seit:
    11.06.2010
    Achso, also wird quasi binned auf die gleiche adresse wie array gelegt!? ;)


    Danke dir :D
     
  4. ko5tik, 02.10.2010 #4
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    binned ist eine Referenz auf dem Array . Mit der Zuweisung von der Parameter verweist sie auf
    dem ünberhebenen Array - und deser wirrd nun sortiert.
     
  5. the_alien, 03.10.2010 #5
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Hast du um knapp 21 Uhr schon den Arsch voll? :D
     
  6. BenOtto, 04.10.2010 #6
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    Beiträge:
    141
    Erhaltene Danke:
    15
    Registriert seit:
    30.08.2010
    :D:D:D
    :thumbsup::thumbsup::thumbsup:
     
  7. ko5tik, 04.10.2010 #7
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    ne, ich lerne 10-Finger-Blind-Tippen :)

    Habe mir dasKeyboard Ultimate zugelegt
     
  8. the_alien, 04.10.2010 #8
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Man nennt das "blind Tippen" weil man nicht auf die Tastatur guckt, nicht weil man die Augen zu hat und überhaupt nicht liest ;)
     
  9. ko5tik, 04.10.2010 #9
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Ich versuche es auf näschsten Level zu bringen ;)
    ( wer die Rechschreibfehler findet, darf diese behalten ;) )
     

Diese Seite empfehlen