tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von CPoly
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
881
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Nimmer Nimmer ist offline Mitglied
    Registriert seit
    Nov 2010
    Beiträge
    11
    Hallo zusammen,

    ich habe eine Methode geschrieben die zwei "Bereiche" in einem Array vertauscht. Das Problem hierbei war, dass die Methode für beliebige Arrays funktionieren sollte. Es ist vor dem Aufruf nicht klar welche Art von Objekten im Array stehen und welche Dimensionen das Array hat.

    Die Mehtode funktioniert inzwischen, aber ich bin mir nicht sicher ob ich einen "vernünftigen" Ansatz gewählt habe. Guckt euch das Ganze doch mal an und sagt mir was ihr davon haltet.

    Code :
    1
    2
    3
    4
    5
    6
    7
    
        private static void swap(Object[] array, int i, int j) throws ClassNotFoundException{
            String className = array[i].getClass().getName();
     
            Object tmp = array[i];
            array[i] = array[j];
            array[j] = Class.forName(className).cast(tmp);
        }
     

  2. #2
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.443
    Wozu das Casten?

    Code java:
    1
    2
    3
    4
    5
    
    private static void swap(Object[] array, int i, int j) {
        Object tmp = array[i];
        array[i] = array[j];
        array[j] = tmp;
    }
    Nimmer bedankt sich. 

  3. #3
    Nimmer Nimmer ist offline Mitglied
    Registriert seit
    Nov 2010
    Beiträge
    11
    Oh ... es funktioniert auch ohne.

    Zu Begin habe ich herum experimentiert und Object-Arrays in Objects und zurück gecasted.
    Da scheine ich letztendlich den Überblick verloren zu haben, bin gar nicht mehr auf den Gedanken gekommen das es auch so funktionieren könnte.

    Tut mir leid, dass ich deine Zeit verschwendet habe
     

  4. #4
    CPoly CPoly ist offline Mitglied Weizenbier
    tutorials.de Premium-User
    Registriert seit
    Sep 2009
    Beiträge
    2.443
    Zitat Zitat von Nimmer Beitrag anzeigen
    Tut mir leid, dass ich deine Zeit verschwendet habe
    Quatsch. Niemand zwingt mich hier zu antworten :-D
     

  5. #5
    Avatar von j2se
    j2se j2se ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    94
    Blog-Einträge
    1
    Zitat Zitat von Nimmer Beitrag anzeigen
    Es ist vor dem Aufruf nicht klar welche Art von Objekten im Array stehen und welche Dimensionen das Array hat.
    Da das der Alptraum eines jeden Java-Entwicklers ist, unterstützt Java generische Typen und Collections. Und zum Ansatz: Weshalb willst Du die Elemente swappen?
     

  6. #6
    Nimmer Nimmer ist offline Mitglied
    Registriert seit
    Nov 2010
    Beiträge
    11
    Zitat Zitat von j2se Beitrag anzeigen
    Und zum Ansatz: Weshalb willst Du die Elemente swappen?
    Ich bin dabei eine Bibliothek für evolutionäre Algorithmen zu erstellen.
    Letztendlich soll es damit möglich sein die Algorithmen einfach aus einer Reihe von Komponenten zusammen zu stellen.
    Das Swappen der Elemente ist Teil eines der grundlegendsten Mutationsalgorithmen.
     

  7. #7
    Avatar von j2se
    j2se j2se ist offline Mitglied Silber
    Registriert seit
    Oct 2011
    Beiträge
    94
    Blog-Einträge
    1
    Swap kenne ich insbesondere bei eigenen Sortieralgorithmen. In Java gibt es Generics für beliebige Objekttypen, welche auch eine Methode sort() anbieten, deshalb die Frage.
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 15.03.11, 13:22
  2. Schlüssel verändern Array
    Von weltvolk im Forum PHP
    Antworten: 2
    Letzter Beitrag: 08.11.07, 18:35
  3. 2D Array kopieren und verändern
    Von DerWisser im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 15.04.07, 22:47
  4. Globales array verändern
    Von hermann9 im Forum Java
    Antworten: 11
    Letzter Beitrag: 08.06.05, 15:09
  5. Antworten: 3
    Letzter Beitrag: 09.02.05, 01:51