una remove recorrer objetos metodos metodo lista imprimir enteros crear como java android collections arraylist swap

java - remove - Cómo mover un elemento específico en la lista de arreglo al primer elemento



metodos arraylist java (6)

Por ejemplo: una lista

A B C D E

Dado C, cambie a

CABDE

Tenga en cuenta que el tamaño de la matriz cambiará, algunos elementos pueden eliminarse en tiempos de ejecución

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

Esta afirmación no funciona porque arroja CBADE, no CABDE, ¿cómo solucionarlo?

Gracias.


Digamos que tienes una matriz:

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

Ahora quiere colocar la C en el índice 0 obtener la C en otra variable

String characterC = arrayOne[2];

Ahora ejecuta el ciclo de la siguiente manera:

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

Por encima de 2 es el índice de C Ahora inserte C en el índice, por ejemplo, en 0

arrayOne[0] = characterC;

El resultado del ciclo anterior será así:

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

Al final, logramos nuestro objetivo.


El problema es que cambias C por A, entonces ABCDE se convierte en CBAD E.

Podrías probar algo como esto:

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

O si url es una LinkedList :

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


Este código le permitirá aumentar el tamaño de la lista e insertar elementos sin alterar el orden de la lista.

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


Lo que quiere es una operación muy costosa en una ArrayList . Requiere cambiar cada elemento entre el comienzo de la lista y la ubicación de C por uno.

Sin embargo, si realmente quieres hacerlo:

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

Si esta es una operación frecuente para usted, y el acceso aleatorio es bastante menos frecuente, puede considerar cambiar a otra implementación de List como LinkedList . También debe considerar si una lista es la estructura de datos correcta si está tan preocupado por el orden de los elementos.


Otra solución, simplemente cambie de 0 a indexOf(itemToMove) .

Esta es mi versión de Kotlin:

val list = mutableListOf(''A'', ''B'', ''C'', ''D'', ''E'') (0..list.indexOf(''C'')).forEach { Collections.swap(list, 0, it) }

Lo siento, no estoy familiarizado con Java pero aprendí un poco de Kotlin. Pero el algoritmo es el mismo


Use esto: Eliminar: ArraylistObj.remove(object); Agregar en una posición específica: ArrayListObj.add(position, Object);

Según su código, use esto:

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