90 votes

Échange d'éléments de la liste d'aryles

Comment échanger le premier et le dernier élément d'un fichier de type ArrayList ? Je sais comment échanger les éléments d'un tableau : en fixant une valeur temporaire pour stocker le premier élément, en laissant le premier élément égal au dernier élément, puis en laissant le dernier élément égal au premier élément stocké.

int a = values[0];
int n = values.length;
values[0] = values[n-1];
values[n-1] = a;

Ainsi, pour un ArrayList<String> Est-ce que ce serait comme ça ?

String a = words.get(0);
int n = words.size();
words.get(0) = words.get(n-1);
words.get(n-1) = a

288voto

Evgeniy Dorofeev Points 52031

Vous pouvez utiliser Collections.swap(List<?> list, int i, int j);

17voto

neevek Points 4794

En Java, il n'est pas possible de définir une valeur dans ArrayList en l'assignant, il y a une méthode d'assignation. set() à appeler :

String a = words.get(0);
words.set(0, words.get(words.size() - 1));
words.set(words.size() - 1, a)

13voto

Nikhil Agrawal Points 3687

Utilisez comme ça. Voici la compilation en ligne du code. Jetez un coup d'oeil http://ideone.com/MJJwtc

public static void swap(List list,
                        int i,
                        int j)

Intervertit les éléments aux positions spécifiées dans la liste spécifiée. (Si les positions spécifiées sont égales, l'invocation de cette méthode laisse la liste inchangée).

P list - La liste dans laquelle il faut échanger les éléments. i - l'index d'un élément à échanger. j - l'index de l'autre élément à échanger.

Lire les documents officiels de la collecte

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#swap%28java.util.List,%20int,%20int%29

import java.util.*;
import java.lang.*;

class Main {
    public static void main(String[] args) throws java.lang.Exception       
    {    
        //create an ArrayList object
        ArrayList words = new ArrayList();

        //Add elements to Arraylist
        words.add("A");
        words.add("B");
        words.add("C");
        words.add("D");
        words.add("E");

        System.out.println("Before swaping, ArrayList contains : " + words);

        /*
      To swap elements of Java ArrayList use,
      static void swap(List list, int firstElement, int secondElement)
      method of Collections class. Where firstElement is the index of first
      element to be swapped and secondElement is the index of the second element
      to be swapped.

      If the specified positions are equal, list remains unchanged.

      Please note that, this method can throw IndexOutOfBoundsException if
      any of the index values is not in range.        */

        Collections.swap(words, 0, words.size() - 1);

        System.out.println("After swaping, ArrayList contains : " + words);    

    }
}

Exemple de compilation en ligne http://ideone.com/MJJwtc

2voto

Pankaj Points 45
for (int i = 0; i < list.size(); i++) {
        if (i < list.size() - 1) {
            if (list.get(i) > list.get(i + 1)) {
                int j = list.get(i);
                list.remove(i);
                list.add(i, list.get(i));
                list.remove(i + 1);
                list.add(j);
                i = -1;
            }
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X