1. Gewinne jetzt ein UMiDIGI C Note - alle Informationen findest du hier!!
  1. Agassiz, 02.10.2010 #1
    Agassiz

    Agassiz Threadstarter Android-Hilfe.de Mitglied

    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

    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

    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

    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

    Hast du um knapp 21 Uhr schon den Arsch voll? :D
     
  6. BenOtto, 04.10.2010 #6
    BenOtto

    BenOtto Android-Hilfe.de Mitglied

    :D:D:D
    :thumbsup::thumbsup::thumbsup:
     
  7. ko5tik, 04.10.2010 #7
    ko5tik

    ko5tik Android-Experte

    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

    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

    Ich versuche es auf näschsten Level zu bringen ;)
    ( wer die Rechschreibfehler findet, darf diese behalten ;) )
     
Du betrachtest das Thema "Array wird ohne grund sortiert?!" im Forum "Android App Entwicklung",