Wie man ein bestimmtes Element in der Array-Liste zum ersten Element verschiebt

Zum Beispiel: Eine Liste

ABCDE

  • IOS UI-Elemente Portierung auf Android
  • Wie kann ich eine Listenansicht in einem Android Alert Dialog anzeigen?
  • Android - zum Einstellungsbildschirm
  • Android: Verwenden von alignBaseline für ein Bild nach Text
  • Einstellen der türkischen und englischen Gebietsschema: Übersetzen Sie türkische Zeichen in lateinische Äquivalente
  • Wie bekomme ich Inpustream als Antwort in Volley Library
  • Angesichts C, Wechseln zu

    CABDE

    Beachten Sie, dass sich die Arraygröße ändern wird, einige Elemente können in Laufzeiten entfernt werden

    Collections.swap(url, url.indexOf(itemToMove), 0); 

    Diese Anweisung funktioniert nicht, weil sie CBADE nicht CABDE ausgibt, wie man es beheben kann?

    Vielen Dank.

  • "Nehmen Sie ein Bild und präsentieren Sie es" im Hochformat auf Samsung Galaxy S
  • So entfernen Sie eine Ansicht, wenn die Animation endet?
  • Android: Wenden Sie verschiedene Themen auf Fragmente einer Aktivität an
  • Android Bitmap Limit - Verhinderung von java.lang.OutOfMemory
  • Spinner zu ActionBar hinzufügen (nicht Navigation
  • Generierung von unsigned, Release apk mit Android Studio
  • 5 Solutions collect form web for “Wie man ein bestimmtes Element in der Array-Liste zum ersten Element verschiebt”

    Was Sie wollen, ist eine sehr teure Bedienung in einer ArrayList . Es erfordert das Verschieben jedes Elements zwischen dem Anfang der Liste und dem Ort von C unten.

    Allerdings, wenn Sie es wirklich tun wollen:

     int index = url.indexOf(itemToMove); url.remove(index); url.add(0, itemToMove); 

    Wenn dies eine häufige Operation für Sie ist, und zufälliger Zugriff ist eher weniger häufig, könnten Sie erwägen Umstellung auf eine andere List Umsetzung wie LinkedList . Sie sollten auch überlegen, ob eine Liste die richtige Datenstruktur überhaupt ist, wenn Sie so besorgt über die Reihenfolge der Elemente sind.

    Verwenden Sie diese: Entfernen: ArraylistObj.remove(object); Hinzufügen an einer bestimmten Position: ArrayListObj.add(position, Object);

    Wie pro Code verwenden Sie dies:

     url.remove("C"); url.add(0,"C"); 

    Das Problem ist, du tauscht C mit A aus, also wird ABCDE zu CBAD E.

    Du könntest so etwas ausprobieren:

     url.remove(itemToMove); url.add(0, itemToMove); 

    Oder wenn url eine LinkedList :

     url.remove(itemToMove); url.addFirst(itemToMove); 

    Dieser Code erlaubt Ihnen, die Größe der Liste zu erhöhen und Elemente einzufügen, ohne dass eine störende Reihenfolge der Liste vorliegt

     private void insert(double price){ for(int i = 0; i < keys.size(); i++){ if(price > keys.get(i)){ keys.add(null); for(int j = keys.size()-1; j > i; j--){ Collections.swap(keys, j, j-1); } keys.add(price); Collections.swap(keys, keys.size()-1, i); keys.remove(keys.size()-1); return; } } keys.add(price); } 

    Lassen Sie sagen, Sie haben ein Array:

     String[] arrayOne = new String[]{"A","B","C","D","E"}; 

    Jetzt willst du das C bei Index 0 , das C in einer anderen Variable

     String characterC = arrayOne[2]; 

    Führen Sie nun die Schleife wie folgt aus:

     for (int i = (2 - 1); i >= 0; i--) { arrayOne[i+1] = arrayOne[i]; } 

    Oberhalb von 2 ist der Index von C Legen Sie nun C bei Index ein, z. B. auf 0

     arrayOne[0] = characterC; 

    Ergebnis der obigen Schleife wird so sein:

     arrayOne: {"C","A","B","D","E"} 

    Das Ende, erreichen wir unser Ziel.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.