Ergebnis 1 bis 5 von 5

[Java] Liste bearbeiten (Mehrfach Verschieben)

  1. #1 Zitieren
    Ritter Avatar von Gossi
    Registriert seit
    Oct 2008
    Ort
    Bremen
    Beiträge
    1.199
    Moinsen liebes WoP,

    Ich habe immo auf der Arbeit nen Problem, ich habe nen Array, indem sind mehrere Objecte, nun möchte ich dieses Array bearbeiten, is natürlich kein großes Ding, habe auch schön ne Möglichkeit gefunden, die, auf den ersten Blick, genau das macht was ich will:

    Code:
    public List<Test> verschieben(List<Test> alteListe, List<EintragVerschieben> listVerschieben) {
    
    List<Test> neueListe = alteListe;
    Test zwischenSpeicher;
    int i = 0;
    
    while(i < listVerschieben.size()) {
    
    zwischenspeicher = alteListe.get(listVerschieben.get(i).getEintragAlt());
    neueListe.remove(listVerschieben.get(i).getEintragAlt());
    neueListe.add(listVerschieben.get(i).getEintragNeu(), zwischenspeicher);
    
    }
    
    return neueListe;
    
    }
    Soweit sogut, wenn ich jez nen Array hab mit 6 Einträgen und nur einen (z.B. 5 auf Position 3) bringen will, geht das, dann macht er aus sowas:

    Test 1
    Test 2
    Test 3
    Test 4
    Test 5
    Test 6

    Sowas:

    Test 1
    Test 2
    Test 5
    Test 3
    Test 4
    Test 6

    Nur, wenn ich jetzt noch Eintrag 4 auf Position 2 bekommen will kommt sowas:

    Test 1
    Test 2
    Test 3
    Test 5
    Test 4
    Test 6

    Woran das liegt weiß ich, habe es auch schon umgestellt, dass er die Daten aus dem alten Array List, aber dann gibt es 2 mal Test 4, aber kein Test 3, da dies entfernt wird, bin echt am verzweifeln, hoffe mir kann da jemand helfen.

    MfG
    Gossi

    PS:
    Das mit
    Code:
    neueListe.set(eintragNeu, alteListe.get(eintragAlt);
    habe ich auch schon versucht.

    EDIT:
    Lösungsansatz:
    Es gibt ja auch die Möglichkeit, die Methode für jede änderung separat aufzurufen, aber das muss doch schöner/schneller gehen, grade bei 100 Einträgen aufwärts mit bis zu 50 änderung daurt des viel zu lange, auch wenn nicht oft was geändert wird, sowas wäre doch unschön
    Gossi ist offline Geändert von Gossi (21.02.2011 um 08:55 Uhr)

  2. #2 Zitieren
    Held Avatar von Lolomoloko
    Registriert seit
    Aug 2006
    Ort
    ~/
    Beiträge
    5.700
    erstmal: was genau hast du jetzt, ein array oder eine liste?

    dann damit ich das richtig verstehe.
    du willst das element quasi in der liste verschieben?
    Lolomoloko ist offline Geändert von Lolomoloko (21.02.2011 um 17:33 Uhr)

  3. #3 Zitieren
    Waldläufer Avatar von Schwops
    Registriert seit
    Mar 2007
    Beiträge
    141
    Wieso willst du überhaupt Einträge einer Liste vertauschen? Das ist doch gerade der große Vorteil an so einer Liste, dass du dir Elemente von verschiedenen Stellen holen, oder auch komplett durch die gesamte Liste gehen kannst, um die gewünschte Operation durchzuführen.

    Listen bzw. Collections werden verwendet um dynamisch Objekte verwalten zu können, ohne vorher zu wissen wie viel Platz man eigentlich benötigt.
    Der Nachteil daran ist, dass die Elemente quasi fest an eine Postion gebunden sind und es eigentlich keinen Sinn macht die Elemente zu vertauschen.

    Wenn du das tuen möchtest eignet sich ein normales (Object bzw. in deinem Fall Test) Array wesentlich besser, allerdings verzichtest du damit auch auf die Typsicherheit einer Liste. (wobei das in Java ohnehin so eine Sache ist...)
    Schwops ist offline

  4. #4 Zitieren
    Mythos Avatar von Pyrokar
    Registriert seit
    May 2004
    Ort
    ..... hihihähähä hier gibt es Wände und wenn ich dagegen Lauf prall ich ab, wie ein Flummi..... hihihähähääähääääää
    Beiträge
    8.115
    Zitat Zitat von Schwops Beitrag anzeigen
    Wenn du das tuen möchtest eignet sich ein normales (Object bzw. in deinem Fall Test) Array wesentlich besser, allerdings verzichtest du damit auch auf die Typsicherheit einer Liste.
    Arrays sind in der Hinsicht genauso Typsicher wie Listen. Du kannst in ein String-Array keine Object-Instanz einfügen, genauso wie du keine Object-Instanz in eine List<String> einfügen kannst (nur dass ersteres zu einem Laufzeitfehler führt und letzteres zumindest von Eclipse gar nicht erst kompilliert wird - typunsicher hieße, dass kein Laufzeitfehler auftreten würde).

    (wobei das in Java ohnehin so eine Sache ist...)
    Was für eine Sache denn?
    [Bild: gg_schuetzen_ani.gif] | ~ DauJones ~ | ~ Klopfers-Web ~ | ~ German Bash ~ |
    Die meisten und schlimmsten Übel, die der Mensch dem Menschen zugefügt hat, entsprangen dem felsenfesten Glauben an die Richtigkeit falscher Überzeugungen.
    Bertrand Russell
    Religionskriege sind Konflikte zwischen erwachsenen Menschen, bei denen es darum geht, wer den cooleren, imaginaeren Freund hat. anonym
    Pyrokar ist offline

  5. #5 Zitieren
    Ritter Avatar von Gossi
    Registriert seit
    Oct 2008
    Ort
    Bremen
    Beiträge
    1.199
    Zitat Zitat von Lolomoloko Beitrag anzeigen
    erstmal: was genau hast du jetzt, ein array oder eine liste?

    dann damit ich das richtig verstehe.
    du willst das element quasi in der liste verschieben?
    Ich habe eine Liste an Objekten.

    Zitat Zitat von Schwops Beitrag anzeigen
    Wieso willst du überhaupt Einträge einer Liste vertauschen? Das ist doch gerade der große Vorteil an so einer Liste, dass du dir Elemente von verschiedenen Stellen holen, oder auch komplett durch die gesamte Liste gehen kannst, um die gewünschte Operation durchzuführen.

    Listen bzw. Collections werden verwendet um dynamisch Objekte verwalten zu können, ohne vorher zu wissen wie viel Platz man eigentlich benötigt.
    Der Nachteil daran ist, dass die Elemente quasi fest an eine Postion gebunden sind und es eigentlich keinen Sinn macht die Elemente zu vertauschen.

    Wenn du das tuen möchtest eignet sich ein normales (Object bzw. in deinem Fall Test) Array wesentlich besser, allerdings verzichtest du damit auch auf die Typsicherheit einer Liste. (wobei das in Java ohnehin so eine Sache ist...)
    Da ich die Liste, nach Reihenfolge sortiert am Anfang bekomme, die Reihenfolge änder, die neue Liste auf der Internetseite anzeigen und in die Datenbank speicher muss, habe nu erstmal die Lösung aus meinem PS benutzt, also nach jeder änderung das ganze speichern, da relativ selten was geändert werden muss und sich die Änderungen in nem kleinen Rahmen halten ist, laut meinem Chef, die performance so auch in Ordnung ^^

    MfG
    Gossi
    Gossi ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •