Elementos de intercambio del cuadro de lista

¿Cómo puedo intercambiar el primer y el último elemento de una ArrayList ? Sé cómo intercambiar los elementos de una matriz: establecer un valor temporal para almacenar el primer elemento, dejar que el primer elemento sea igual al último elemento, y luego dejar que el último elemento sea igual al primer elemento almacenado.

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

Entonces, ¿para una ArrayList sería así?

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

Puede usar Collections.swap(List list, int i, int j);

En Java, no puede establecer un valor en ArrayList asignándole, hay un método set() para llamar:

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

Úselo así Aquí está la comstackción en línea del código. Eche un vistazo a http://ideone.com/MJJwtc

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

Intercambia los elementos en las posiciones especificadas en la lista especificada. (Si las posiciones especificadas son iguales, la invocación de este método deja la lista sin cambios).

Parámetros: lista: la lista en la que intercambiar elementos. i – el índice de un elemento a intercambiar. j – el índice del otro elemento a intercambiar.

Lea los documentos oficiales de la colección

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); } } 

Ejemplo de comstackción Oneline http://ideone.com/MJJwtc

 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; } } }