Lección 10 · 10 de 20
Trabajar con listas · Dart
Cambie listas en Dart: añada con add, addAll e insert, quite con remove, removeAt y removeLast, ordene con sort y copie partes con sublist.

Las listas de Dart pueden crecer y encoger. `add()` pone un elemento al final y `addAll()` pone varios a la vez, aquí Eva y Fran. `insert(0, 'Zoe')` lo pone en una posición concreta, la primera, y los demás se desplazan.
Para quitar hay tres formas: `remove('Ben')` busca el valor y lo borra, `removeAt(0)` borra la posición indicada y `removeLast()` el último. removeAt y removeLast devuelven lo que han quitado, por eso served guarda a Zoe, la primera atendida.
`sort()` ordena la propia lista, de menor a mayor; no crea una nueva. `reversed` da los elementos al revés, pero no es una lista, sino una secuencia que se recorre; `toList()` la convierte en una lista para guardarla en ranking.
`sublist(inicio, fin)` copia una parte de la lista: incluye el inicio y no el fin, así que ranking.sublist(0, 3) son las posiciones 0, 1 y 2, las tres mejores notas. Sin el segundo número, sublist(3) llega hasta el final.
`clear()` vacía la lista: la cola cierra con [] y longitud 0.
Código · main.dart
void main() { var queue = ['Ana', 'Ben', 'Carla']; // add puts one element at the end; addAll puts several. queue.add('Dani'); queue.addAll(['Eva', 'Fran']); print('Queue: $queue'); // insert puts it at a given position. queue.insert(0, 'Zoe'); print('Zoe goes first: $queue'); // remove by value, removeAt by position, removeLast the last one. queue.remove('Ben'); String served = queue.removeAt(0); queue.removeLast(); print('$served served, Ben left, Fran gave up: $queue'); // sort orders the list itself, from lowest to highest. var scores = [72, 95, 58, 81, 64, 88]; scores.sort(); print('Sorted: $scores'); // reversed gives the elements backwards; toList makes a list. var ranking = scores.reversed.toList(); print('Ranking: $ranking'); // sublist(start, end) copies a part; end is not included. print('Top 3: ${ranking.sublist(0, 3)}'); print('From the 4th on: ${ranking.sublist(3)}'); queue.clear(); // clear empties the list print('Queue after closing: $queue (${queue.length})');}Salida · dart run main.dart
Queue: [Ana, Ben, Carla, Dani, Eva, Fran] Zoe goes first: [Zoe, Ana, Ben, Carla, Dani, Eva, Fran] Zoe served, Ben left, Fran gave up: [Ana, Carla, Dani, Eva] Sorted: [58, 64, 72, 81, 88, 95] Ranking: [95, 88, 81, 72, 64, 58] Top 3: [95, 88, 81] From the 4th on: [72, 64, 58] Queue after closing: [] (0)
Para recordar
add,addAlleinsertañaden.removequita por valor;removeAt, por posición.sort()ordena la propia lista.reversed.toList()da una copia al revés.sublist(inicio, fin)no incluye el fin.
Ejercicio
Parta de una lista de cinco tareas, añada una al principio y otra al final, quite la tercera, ordénela alfabéticamente y escriba solo las tres primeras con sublist.